【发布时间】:2016-04-25 18:12:42
【问题描述】:
我有一个在 PHP 5.3 中运行良好的脚本。新主机只支持5.5,所以我做了一些修改。到目前为止,我只能返回一行。我已经痛苦了好几个小时了,我就是不明白为什么。
这可能是因为我在 while 循环之后没有使用 array_push() 吗?在我的原始脚本中,我有它,但发现在这个脚本中我得到了一个 500 内部服务器错误,如果我把它拿出来,它就会消失。
<?php
$mysqli = mysqli_connect("localhost", "user", "password", "database");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$row_array = array();
$query = "SELECT title,year,author,journal,keywords,abstract,url FROM entries";
if ($result = mysqli_query($mysqli, $query)) {
/* fetch object array */
while ($row = mysqli_fetch_assoc($result)) {
$row_array['title'] = $row['title'];
$row_array['year'] = $row['year'];
$row_array['author'] = $row['author'];
$row_array['journal'] = $row['journal'];
$row_array['keywords'] = $row['keywords'];
$row_array['abstract'] = $row['abstract'];
$row_array['url'] = $row['url'];
}
echo '{"data":';
echo json_encode($row_array);
echo '}';
/* free result set */
$result->close();
}
/* close connection */
$mysqli->close();
?>
得到的返回是这样的:
{"data":{"title":"ERGOT The Genus Claviceps","year":"1999","author":null,"journal":null,"keywords":"LSD","abstract ":null,"url":null}}
这很好,花花公子,除了大约 9500 行应该回来。
【问题讨论】:
-
您不是在每次迭代时都不断地覆盖
$row_array中的条目吗? -
是的,看起来是这样。这是我第一次弄乱 5.5。我不知道为什么它在 5.3 中没有这样做。
标签: php mysqli datatables