MYSQL语法错误 - SELECT语句

时间:2012-10-23 21:28:10

标签: php mysql

我在屏幕上显示此错误,我一直在尝试调试。

“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在第1行''='testname''附近使用正确的语法”

我使用的功能如下:

function recentMessages() {
    $tbl_name="messages";
    $username = $_SESSION['username'];
    $result = mysql_query("SELECT * FROM $tbl_name WHERE to = '$username' ") or die(mysql_error());
    while ($row = mysql_fetch_row($result))
      {
        return $row['date']." ".$row['time']." ".$row['from']." ".$row['subject']. "<br />";    
      }
}

基本上我想要做的是从数据库消息中获取所有数据行,其中'to'是会话的用户名并且其回显。关于我做错什么的任何想法?感谢

4 个答案:

答案 0 :(得分:10)

to是保留字。用刻度线包围它。

... WHERE `to` = '$username'

请参阅MySQL reserved words

如果可能,您应该避免使用保留字。

答案 1 :(得分:1)

to是一个保留字。试试这个:

$result = mysql_query("SELECT * FROM $tbl_name WHERE `to` = '$username' ") 
                or die(mysql_error());

一般情况下,尽量避免使用...之间,...之间的小词。只是为了防止这种问题。更好的解决方案是使用字段名称:“receiver”或“message_to”或类似的东西

答案 2 :(得分:0)

TO是MySQL中的保留字。使用反引号将其分开。

SELECT * FROM $tbl_name WHERE `to` = '$username'

答案 3 :(得分:-1)

是我相信的保留字。尝试更改为[到] 编辑:完全不确定。我把它放在SQL Server中,看到TO是一个保留字。