我有一个简单的 PHP 脚本:
function test() {
$sql = "select author, synopsis from book";
$result = mysql_query($sql); // result set
while ($rec = mysql_fetch_array($result, MYSQL_ASSOC)) {
$arr[] = $rec;
};
$data = json_encode($arr); //encode the data in json format
echo $data;
}
问题是,当我尝试使用 jQuery 读取结果时,我得到““synopsis”:NULL”。我想知道是否是因为数据库中的 synopsis 值包含多行?
jQuery 代码:
<script>
$(document).ready(function() {
$.ajax({
url: "data/book.php",
type: 'POST',
dataType: 'json',
success : function (data) {
$('div.book').text(data[0].synopsis);
}
});
});
</script>
php 的输出:
[{"author":"author","synopsis":null}]
回复@iMx建议:
array(2) {
[0]=>
array(2) {
["author"]=>
string(7) "author"
["synopsis"]=>
string(697) "Le patient du psychiatre
Dekker, un certain Boone, avoue durant les transes dans lesquelles
le plonge le docteur, qu'il aurait commis une dizaine de meurtres,
tous plus sordides les uns que les autres. Seulement, une fois sortie de
cet �tat d'exaltation, l'homme ne se rappelle de rien. D�sesp�r�, Boone fait une
tentative de suicide rat�e qui le conduit � l'h�pital. Son compagnon de chambre,
visiblement bien cram� du cerveau, �voque le nom de Midian, un endroit dans le
d�sert de l'Athabasca o� se regroupent les damn�s de la terre,
les �tres qui souffrent horriblement. Convaincu de pouvoir y trouver un r
efuge, et ainsi de mettre un terme � ses crimes, il part sur ce lieu �trange..."
}
也许是因为法语字符有问题?
最佳答案
我猜是编码问题。你的mysql表有什么编码? json_encode()
仅接受 UTF-8 字符串并可能返回 null
在非 UTF-8 字符串上 - 也许这是你的问题。尝试使用 iconv()
转换字符串或mb_convert_encoding()
或者使用 mysql_query('SET CHARACTER SET utf8')
将 MySQL 查询编码设置为 UTF-8在您的 SELECT 请求之前。
关于Php mysql 脚本返回 Null 而不是 "long"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20924059/