当我尝试远程连接到数据库时,我遇到了一些问题,我会非常感谢任何提示。这是代码:
$con=mysqli_connect($port, $username, $password, $database);
$sql = "SELECT name, date FROM `view_tickets`;";
if ($result = mysqli_query($con, $sql))
{
// If so, then create a results array and a temporary one to hold the data
$resultArray = array();
$tempArray = array();
// Loop through each row in the result set
while($row = $result->fetch_object())
{
// Add each row into our results array
$tempArray = $row;
array_push($resultArray, $tempArray);
}
// Finally, encode the array to JSON and output the results
echo json_encode($resultArray);
}
mysqli_close($result);
mysqli_close($con);
我想让json能够从移动应用程序运行它。目前浏览器上没有显示任何内容(我正在运行Xampp)。我添加了一些打印件,可以确认连接成功并正确填充阵列。我设法使用print_r(array_values($resultArray));
我的json有问题吗?
我不知道这是否有帮助但注意到我收到了以下警告;
警告:mysqli_close()要求参数1为mysqli,第39行/Applications/XAMPP/xamppfiles/htdocs/www/service.php中给出的对象
这对应于mysqli_close($ result);
有什么想法吗?
答案 0 :(得分:0)
mysqli_close
需要连接才能关闭,但您可以通过查询向该功能提供结果!
将其更改为
mysqli_close($con);
然后它应该工作,如果不只是评论
答案 1 :(得分:0)
以下是您的代码的优化版本。
请注意,tempArray被删除(不需要它)..
mysqli_close($ result)被替换为unset($ result),因为$ result不是连接对象。如果这是你的代码的结束,那么不需要取消设置,因为在脚本结束之后php会自动取消所有变量。
$con=mysqli_connect($port, $username, $password, $database);
$sql = "SELECT name, date FROM `view_tickets`;";
$resultArray = array();
if ($result = mysqli_query($con, $sql)) {
// Loop through each row in the result set
while($row = $result->fetch_object()){
$resultArray[] = $row;
}
}
unset($result);
mysqli_close($con);
// Finally, encode the array to JSON and output the results
echo json_encode($resultArray);
答案 2 :(得分:0)
我遇到了字符集编码的问题。数据库可以有不同的编码,确保它是utf8