我正在尝试创建一个json输出,但是在将一些旧代码转换为mysqli时,我得到了一些错误。
以下是完整的代码:
<?php
$con=mysqli_connect("localhost","root","pass","db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = mysqli_query($con,"SELECT * FROM users");
$response = array();
$users = array();
$result=mysqli_query($con, $sql); //ERROR 1 points here
while($row=mysqli_fetch_array($result)) //ERROR 2 points here
{
$firstname=$row['first_name'];
$lastname=$row['last_name'];
$users[] = array('firstname'=> $firstname, 'lastname'=> $lastname);
}
$response['users'] = $users;
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($response));
fclose($fp);
?>我得到了两个错误:上面代码中的...See注释
发布于 2014-03-05 23:27:12
第一个错误是因为您已经在这里查询了数据库。
$sql = mysqli_query($con,"SELECT * FROM users");所以移除这一行
$result=mysqli_query($con, $sql); //remove this line并使用$sql对象获取数据以避免第二个错误
while($row=mysqli_fetch_array($sql))
//^Change here from $result to $sql发布于 2014-03-05 23:28:15
您为mysqli_query提供了一个对象,而不是字符串:
$sql = mysqli_query($con,"SELECT * FROM users");
$result=mysqli_query($con, $sql); //ERROR 1 points here来自php 文档
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries
mysqli_query() will return a mysqli_result object. For other successful queries
mysqli_query() will return TRUE.第二个错误是第一个错误的结果,您应该将$sql交给mysqli_fetch_array函数。
https://stackoverflow.com/questions/22211602
复制相似问题