繁体   English   中英

SELECT语句中的MySQL语法错误

[英]Mysql syntax error in select statement

我有一个表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

在查询中,您未指定查找位置

Where 1

它不指定任何列

// it should be something like this 
Where id = 1

所以你的查询是这样的

$nameQuery ='SELECT * FROM `main_tag` WHERE id = 1

我不好,我的查询没问题,其他查询的错误。 然而

while ($row = mysqli_fetch_assoc($rsnameQuery)) {
   $json[] = $row;
}

这是要写而不是

while($row = $rsnameQuery->fetch_assoc()){
     $json =$row;
}

这没有返回数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM