Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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
can';t显示保存在phpmyadmin数据库中的文件详细信息_Php_Mysql_Angularjs - Fatal编程技术网

can';t显示保存在phpmyadmin数据库中的文件详细信息

can';t显示保存在phpmyadmin数据库中的文件详细信息,php,mysql,angularjs,Php,Mysql,Angularjs,我正在用angular和php构建一个项目,我有一个“文件”表,我可以只使用php上传文件。现在,我正在尝试检索数据库中的所有文件详细信息。我在控制台中的错误是: angular.js:13550 SyntaxError: Unexpected token < in JSON at position 0 at Object.parse (native) Html: מספר משו שם מלא ת.ז./עוסק מורשה עיר כתובת {{x.id} {{x.na

我正在用angular和php构建一个项目,我有一个“文件”表,我可以只使用php上传文件。现在,我正在尝试检索数据库中的所有文件详细信息。我在控制台中的错误是:

 angular.js:13550 SyntaxError: Unexpected token < in JSON at position 0
    at Object.parse (native)
Html:


מספר
משו
שם מלא
ת.ז./עוסק מורשה
עיר
כתובת
{{x.id}
{{x.name}
{{x.mime}}
{{x.size}}
{{x.data}}
{{x.created}}

调试不友好代码的典型案例

首先,您必须检查
$connection->query
是否可能返回错误,这意味着返回值不是resultset,而是
false
。所以

if($queryResult === false) {
    die($connection->error);
}
即使这样,您也应该有一个“sane”结果,这意味着您需要一个数组数组,因此
$queryResult2
至少应该初始化为数组:

$queryResult2 = array(); // before the while loop.
另外:您完全不需要检查
num_rows
,只需执行while循环,因为如果没有行,它就不会出错<代码>提取真聪明

事实证明,排序的列
date
不存在

经过长时间的调试,我们发现数据库中可能存储了二进制数据,
json\u encode()
由于“格式错误的utf8字符”而返回false。angularjs部分必须调整为不太频繁地解码/解析json。我假设数据库中没有存储二进制数据。这是一个警告,调试时不要有任何假设。始终检查错误返回值


调试友好的代码很有帮助。请编写调试友好型代码,因为这样做并不麻烦,调试变得像将错误消息放入某个搜索引擎一样简单,并且不要让stackoverflow在问题的注释中调试代码。

调试不友好型代码的典型案例

首先,您必须检查
$connection->query
是否可能返回错误,这意味着返回值不是resultset,而是
false
。所以

if($queryResult === false) {
    die($connection->error);
}
即使这样,您也应该有一个“sane”结果,这意味着您需要一个数组数组,因此
$queryResult2
至少应该初始化为数组:

$queryResult2 = array(); // before the while loop.
另外:您完全不需要检查
num_rows
,只需执行while循环,因为如果没有行,它就不会出错<代码>提取真聪明

事实证明,排序的列
date
不存在

经过长时间的调试,我们发现数据库中可能存储了二进制数据,
json\u encode()
由于“格式错误的utf8字符”而返回false。angularjs部分必须调整为不太频繁地解码/解析json。我假设数据库中没有存储二进制数据。这是一个警告,调试时不要有任何假设。始终检查错误返回值



调试友好的代码很有帮助。请,world,编写调试友好的代码,因为这样做并不麻烦,调试变得很容易,就像将错误消息放入某个搜索引擎中一样,并且不要让stackoverflow在问题的注释中调试代码。

@MarkusLaire“如果”中缺少什么?我不明白。您建议对$queryResult2做什么?@Kamae注意:尝试获取C:\wamp64\www\hamatkin\api\customers tab\get-all-priceOffers.php中非对象的属性,在第14行,您应该首先检查您的
$queryResult
是否为
false
=
!=
)。如果是
false
,您应该会收到错误消息。用于获取错误本身不是用于调试帮助,而是hey。在->查询()之后;您编写
if($queryResult==FALSE){die($connection->error);}
将错误输出到php页面(因此再次使用浏览器浏览)@Jakumi感谢所有建议!现在它说“response=Object{data:‘order子句’中的未知列‘date’”,状态:200,配置:Object,“请问这是什么意思?@MarkusLaire‘if’中缺少什么?”?我不明白。你建议用$queryResult2做什么?@Kamae注意:试图在C:\wamp64\www\hamatkin\api\customers tab\get-all-priceOffers.php中获取非对象的属性,在第14行,你应该首先检查你的
$queryResult
是否为
false
==
!=
)。如果它是
false
,您应该会得到错误消息。用于获取错误本身并不是为了调试帮助,而是在->query()之后编写
if($queryResult==false){die($connection->error);}
,它应该将错误输出到php页面(因此再次使用浏览器浏览)@Jakumi感谢所有的建议!现在它说“response=Object{data:‘order子句’中的未知列‘date’”,状态:200,配置:Object,“请问这是什么意思?在我的数据库“文件”中”表这是我的列:id/name/mime/size/data/created-这是它设置数据的地方,您尝试按
date
排序,它可能在哪里…
created
?我没有看到您太棒了!我现在会更改并再次尝试OK现在我没有错误,但仍然没有显示,当我在“sources”中调试时,它会显示:response=Object{data:“false”,status:200,config:Object,statusText:“OK”}为什么数据会变为false?请将您当前的代码附加到您的问题中。另外:您的表中是否有文件?^在我的数据库“file”中表这是我的列:id/name/mime/size/data/created-这是它设置数据的地方,您尝试按
date
排序,它可能在哪里…
created
?我没有看到您太棒了!我现在将更改并再次尝试,现在我有了
$queryResult2 = array(); // before the while loop.