2

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

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'to = '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 />";    
      }
}

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

4

4 回答 4

10

to是保留字。用刻度线把它包起来。

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

请参阅 MySQL保留字

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

于 2012-10-23T21:29:03.870 回答
1

to 是保留字。试试这个:

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

一般来说,尽量避免使用to、between、from ...等小词,以防止出现此类问题。更好的解决方案是有一个字段名称,例如:“receiver”或“message_to”或类似的名称

于 2012-10-23T21:32:05.227 回答
0

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

SELECT * FROM $tbl_name WHERE `to` = '$username'
于 2012-10-23T21:32:15.890 回答
-1

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

于 2012-10-23T21:30:46.267 回答