Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从表中选择*不会返回任何结果_Php_Mysql - Fatal编程技术网

Php 从表中选择*不会返回任何结果

Php 从表中选择*不会返回任何结果,php,mysql,Php,Mysql,我编写了这个php脚本,它允许我获取MySQL数据库表中的所有行。 我已经把回声“1”等放进去,看看它是否到达了代码的最后。输出结果证明了它的正确性。然而,当回显json\u encode($resultsArray)时,它不会输出任何内容,我似乎不知道为什么 代码: // Create connection $connection = mysqli_connect("localhost", "xxx", "xxx"); // Check connection if (!$connection)

我编写了这个php脚本,它允许我获取MySQL数据库表中的所有行。
我已经把
回声“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
会让事情变得更清楚。