从表中选择*不返回任何内容

时间:2017-10-22 00:08:57

标签: php mysql

我编写了这个php脚本,它允许我获取MySQL数据库中表中的所有行 我已经放了echo "1"等等,看它是否到达最后的代码。输出证明了它。但是,当回显json_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

我想,这不是关于json_encode,因为我也可以尝试回应某事。像while循环中的$result['id']一样,它不会做任何事情。

为了测试,我使用终端进入数据库。我可以毫无问题地select * from myTable

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

经过大约20小时的调试,我发现了问题。

正如我在我的问题中所述,代码过去在发布此问题之前工作了几个小时然后突然停止工作。 @MichaelBerkowski确认代码是有效的 我记得在某些时候,我改变了我的列,使其默认值为空字符串 - 我将它们声明如下:NOT NULL DEFAULT ''
我现在发现复制表并省略json_encode()部分会使Project再次工作,所以显然存在问题。

感谢所有人的尝试!