我与数据库的连接工作正常。我的应用程序可以显示除第一行之外的所有数据。当我通过MySQL工作台在本地运行它时,它会获取我的第一行,然后是每行。只是我的PHP代码没有获得第一行,我不确定为什么。
<?php
//connect with database
$connect= new mysqli($host,$user,$pass,$db) or die("ERROR:could not connect to the database!");
$query="select * from college";
$result=$connect->query($query);
$jsonData = array();
while ($array = mysqli_fetch_assoc($result)) {
$jsonData[] = $array;
}
echo json_encode($jsonData);
?>
答案 0 :(得分:1)
您分享的摘录代码很好,所以我怀疑您的问题来自其他地方。我建议,如果您打算使用查询的所有结果,则可以全部获取它们,然后处理您获取的内容。这样可以防止您在忘记的提取调用的情况下向前移动结果指针,然后想知道您的第一个结果在哪里。
而不是:
while ($array = mysqli_fetch_assoc($result)) {
$jsonData[] = $array;
}
执行:
//remember to error-check before you try using the results of a query
$result = $connect->query(...) or die($connect->error);
$jsonData = $result->fetch_all(MYSQLI_ASSOC);
此更改会在内存中生成结果副本,因此会使您的脚本更加耗费资源。如果您有500或1,000个结果,它可能无关紧要,但如果您有500,000或1,000,000个结果,您应该在决定之前进行基准测试。
答案 1 :(得分:0)
尝试这样做:
<?php
$query = mysqli_query($con, "SELECT * FROM college");
while($row = mysqli_fetch_array($query)){
$arr[] = $row;
}
$json = json_encode($arr);
print $json;