【发布时间】:2016-12-26 06:29:07
【问题描述】:
我有一张表main_tag,其结构为
1 id int(100)
2 name varchar(100)
3 description varchar(1000)
4 added_on timestamp
并具有php的功能如下
function all_data_of_main_tag_table(){
include_once 'db.php';
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$json = array();
$nameQuery ='SELECT * FROM `main_tag` WHERE 1';
echo '<br>'.$nameQuery.'<br>';
$rsnameQuery = $conn->query($nameQuery);
if($rsnameQuery === false){
echo 'hi'.'<br>';
trigger_error('Wrong SQL: '.$nameQuery.' Error: '.$conn->error, E_USER_ERROR);
}
else{
$rows_returned = $rsnameQuery->num_rows;
}
while($row = $rsnameQuery->fetch_assoc()){
$json =$row;
}
$conn->close();
return $json;
}
运行此函数时出现错误:
{
"description": null,
"name": null,
"id": null
}
MySQL error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
【问题讨论】:
-
你试过查询为:SELECT * FROM main_tag
-
您的查询似乎没问题。
-
“错误的 SQL”位在哪里?也许此错误消息指的是不同的查询
-
您确定是收到错误的查询吗?您的代码中的错误消息以
Wrong SQL:开头,但您的消息显示MySQL error:。它也不会像您的trigger_error()调用那样打印$nameQuery。 -
另外,如果你想推入一个数组,你应该使用
$json[] = $row;。你每次都覆盖变量,所以你只得到最后一行。