2

我有这个问题错误,我不知道如何解决它。我知道很多人有像我这样的问题,但我无法定位。

问题:

Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `user` WHERE `id` = 0' at line 6

代码:

<?php
function fetch_users(){
$result = mysql_query('SELECT `id` AS `id`, `username` AS `username` FROM `user`');

$users = array();

while(($row = mysql_fetch_assoc($result)) !== false){
       $users[] = $row;
   }

   return $users;

}

// fetches profile information for the given user.
function fetch_user_info($id){
   $id = (int)$id;

   $sql = "SELECT 
               `username` AS `username`,
               `firstname` AS `firstname`,
               `lastname` AS `lastname`,
               `email` AS `email`,
             FROM `user` WHERE `id` = {$id}";

      $result = mysql_query($sql);
      if (!$result) {
   die('Invalid query: ' . mysql_error());
   }

      return mysql_fetch_assoc($result);
}


?>
4

2 回答 2

4

删除最后一列后的逗号:

$sql = "SELECT 
             `username` AS `username`,
             `firstname` AS `firstname`,
             `lastname` AS `lastname`,
             `email` AS `email`              -- here
         FROM `user` WHERE `id` = {$id}";

此外,您不需要使用与列相同的名称:

$sql = "SELECT 
             `username`,
             `firstname`,
             `lastname`,
             `email`  
         FROM `user` WHERE `id` = {$id}";
于 2015-11-01T12:45:16.983 回答
0

问题在于 sql 查询的语法格式$sql,因为错误本身告诉错误是 near ,查询FROM user WHERE id=0中的附加comma ,near会引发 sql 错误。emailselect

<?php
echo 'test';

function fetch_users(){
    $result = mysql_query('SELECT `id` AS `id`, `username` AS `username` FROM `user`');
    $users = array();
    while(($row = mysql_fetch_assoc($result)) !== false){
        $users[] = $row;
    }
    return $users;
}
// fetches profile information for the given user.
function fetch_user_info($id){
    $id = (int)$id;
    $sql = "SELECT 
`username` AS `username`,
`firstname` AS `firstname`,
`lastname` AS `lastname`,
`email` AS `email`
FROM `user` WHERE `id` = {$id}";
    $result = mysql_query($sql);
    if (!$result) {
        die('Invalid query: ' . mysql_error());
    }
    return mysql_fetch_assoc($result);
}
echo fetch_users();

?>
于 2015-11-01T13:01:27.350 回答