Php 从表中选择*不会返回任何结果
我编写了这个php脚本,它允许我获取MySQL数据库表中的所有行。Php 从表中选择*不会返回任何结果,php,mysql,Php,Mysql,我编写了这个php脚本,它允许我获取MySQL数据库表中的所有行。 我已经把回声“1”等放进去,看看它是否到达了代码的最后。输出结果证明了它的正确性。然而,当回显json\u encode($resultsArray)时,它不会输出任何内容,我似乎不知道为什么 代码: // Create connection $connection = mysqli_connect("localhost", "xxx", "xxx"); // Check connection if (!$connection)
我已经把
回声“1”
等放进去,看看它是否到达了代码的最后。输出结果证明了它的正确性。然而,当回显json\u encode($resultsArray)
时,它不会输出任何内容,我似乎不知道为什么
代码:
// Create connection
$connection = mysqli_connect("localhost", "xxx", "xxx");
// Check connection
if (!$connection) { die("Connection failed: " . mysqli_connect_error()); } else { echo "0"; }
// select database
if (!mysqli_select_db($connection, "myDB")) { die('Unable to connect to database. '. mysqli_connect_error()); } else { echo "1"; }
$sql = "select * from myTable";
$result = mysqli_query($connection, $sql) or die(mysqli_error($connection));;
echo "3";
$resultsArray = array();
while($row = mysqli_fetch_assoc($result)) {
// convert to array
$resultsArray[] = $row;
}
echo "4";
// return array w/ contents
echo json_encode($resultsArray);
echo "5";
01345
输出:
// Create connection
$connection = mysqli_connect("localhost", "xxx", "xxx");
// Check connection
if (!$connection) { die("Connection failed: " . mysqli_connect_error()); } else { echo "0"; }
// select database
if (!mysqli_select_db($connection, "myDB")) { die('Unable to connect to database. '. mysqli_connect_error()); } else { echo "1"; }
$sql = "select * from myTable";
$result = mysqli_query($connection, $sql) or die(mysqli_error($connection));;
echo "3";
$resultsArray = array();
while($row = mysqli_fetch_assoc($result)) {
// convert to array
$resultsArray[] = $row;
}
echo "4";
// return array w/ contents
echo json_encode($resultsArray);
echo "5";
01345
我想,这不是关于json_encode
,因为我还可以尝试在while循环中回显像$result['id']
这样的内容,但它不会做任何事情
为了测试,我使用终端进入数据库。我可以从myTable中选择*而不出现任何问题
有什么想法吗?经过大约20小时的调试,我发现了这个问题 正如我在问题中所说的,在发布此问题之前,代码通常工作几个小时,然后突然停止工作@MichaelBerkowski确认该代码功能正常。
我记得在某个时候,我将我的列更改为具有空字符串的默认值-我声明它们如下:
columnName VARCHAR(50)NOT NULL default'
我现在发现,复制表并省略
notnull默认值“
部分会使json\u encode()
再次工作,因此显然存在问题
谢谢大家的努力 请参阅我更新的帖子。
{echo“query failed”;}
如果在查询失败时没有帮助,请检查真正的错误。做到这一点,然后更新你的帖子。其实没什么b/c,它甚至不会失败。从技术上讲,你是对的,尽管@Fred ii你有错误报告,所以你看到发布的任何通知吗?在这个脚本的顶部错误报告(E_ALL);ini设置(“显示错误”,1)代码>。您还可以验证mysqli\u num\u行($result)
以查看它是否符合您的期望。您可以调用mysqli\u query()
两次。在某些情况下(尽管我不认为这是其中之一),如果执行新查询时没有从上一个查询中完全获取行,那么它将失败。如果我回想起来,这种情况应该只发生在存储过程执行之类的情况下,但是display\u errors
会让事情变得更清楚。