2012-02-11 76 views
-1

我试图从数据库提取成员信息,并得到这个错误:PHP MYSQL语法错误

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 users WHERE user_id = 0' at line 8 That user does not exist.

我不知道要改变什么,因为我是新来的PHP。

我的错误代码是:

<?php 

function fetch_users() { 

    $result = mysql_query('SELECT `user_id` AS `id`, `user_username` AS `username` FROM `users`'); 

    $users = array(); 

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

    return $users; 
} 

function fetch_user_info($uid) { 
    $uid = (int)$uid; 

    $sql = "SELECT 
       `user_username` AS `username`, 
       `user_firstname` AS `firstname`, 
       `user_lastname` AS `lastname`, 
       `user_email` AS `email`, 
       `user_about` AS `about`, 
       `user_location` AS `location`, 
       `user_gender` AS `gender`' 
      FROM `users` 
      WHERE `user_id` = {$uid}"; 

    $result = mysql_query($sql);    

    /*Echo mysql_error();*/ 


    return mysql_fetch_assoc($result);   
} ?> 

回答

3

在第二个查询,在最后一行结束前FROM子句中,有一个单引号(')是不应该在那里,尝试将其取出:

`user_gender` AS `gender`' 
FROM `users` 

而且,这正是MySQL是告诉你在它的错误信息: ''FROM users WHERE user_id = 0' at线8

请注意消息中查询示例开始处的双重单引号(什么术语):第一个标记样本的开始(它总是由两个单引号括起来),第二个已经是令牌造成麻烦。

0

据我所知,它看起来像是在gender之后的反向符号后立即有一个单引号。除此之外,我认为这会奏效。

+0

对不起,这里是我的新错误信息:你的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在'FROM'用户附近使用正确的语法WHERE'user_id'='0''在第9行 – user1155141 2012-02-11 21:01:12