PHP-Mysql服务器错误

PHP-Mysql服务器错误,php,mysql,Php,Mysql,我的sql查询有问题。我正在创建一个像facebook这样的社交网站,并试图进行聊天。我已经在下面包含了错误消息 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在第1行的“to='2'&&to_查看='0'&&to_删除='0'顺序创建DESC 这是我的sql查询 function getmessages($type=0) { switch($type) { case "0": $sql = "SELECT * FROM messages WHERE

我的sql查询有问题。我正在创建一个像facebook这样的社交网站,并试图进行聊天。我已经在下面包含了错误消息

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在第1行的“to='2'&&
to_查看='0'&&to_删除='0'顺序创建DESC

这是我的sql查询

function getmessages($type=0) {
    switch($type) {
        case "0": $sql = "SELECT * FROM messages WHERE to = '".$this->userid."' && `to_viewed` = '0' && `to_deleted` = '0' ORDER BY `created` DESC"; break; // New messages
        case "1": $sql = "SELECT * FROM messages WHERE to = '".$this->userid."' && `to_viewed` = '1' && `to_deleted` = '0' ORDER BY `to_vdate` DESC"; break; // Read messages
        case "2": $sql = "SELECT * FROM messages WHERE from = '".$this->userid."' ORDER BY `created` DESC"; break; // Send messages
        case "3": $sql = "SELECT * FROM messages WHERE to = '".$this->userid."' && `to_deleted` = '1' ORDER BY `to_ddate` DESC"; break; // Deleted messages
        default: $sql = "SELECT * FROM messages WHERE to = '".$this->userid."' && `to_viewed` = '0' ORDER BY `created` DESC"; break; // New messages
    }
    $result = mysql_query($sql) or die (mysql_error());


    if(mysql_num_rows($result)) {
        $i=0;

        $this->messages = array();

        while($row = mysql_fetch_assoc($result)) {
            $this->messages[$i]['id'] = $row['id'];
            $this->messages[$i]['title'] = $row['title'];
            $this->messages[$i]['message'] = $row['message'];
            $this->messages[$i]['fromid'] = $row['from'];
            $this->messages[$i]['toid'] = $row['to'];
            $this->messages[$i]['from'] = $this->getusername($row['from']);
            $this->messages[$i]['to'] = $this->getusername($row['to']);
            $this->messages[$i]['from_viewed'] = $row['from_viewed'];
            $this->messages[$i]['to_viewed'] = $row['to_viewed'];
            $this->messages[$i]['from_deleted'] = $row['from_deleted'];
            $this->messages[$i]['to_deleted'] = $row['to_deleted'];
            $this->messages[$i]['from_vdate'] = date($this->dateformat, strtotime($row['from_vdate']));
            $this->messages[$i]['to_vdate'] = date($this->dateformat, strtotime($row['to_vdate']));
            $this->messages[$i]['from_ddate'] = date($this->dateformat, strtotime($row['from_ddate']));
            $this->messages[$i]['to_ddate'] = date($this->dateformat, strtotime($row['to_ddate']));
            $this->messages[$i]['created'] = date($this->dateformat, strtotime($row['created']));
            $i++;
        }
    } else {

        return false;
    }
}
这是我的数据库模式


查询中发现的错误列表


  • &&
    应在SQL中写成
前,


  • to
    from
    应使用反勾号转义,因为它是
前,


在所有
SQL
查询中,尝试将“&&”更改为“和”

&&
替换为
,如下所示

SELECT * FROM messages WHERE to = '".$this->userid."' AND `to_viewed` = '0' AND `to_deleted` = '0' ORDER BY `created` DESC

从消息中选择*WHERE to=$this->userid和
to_view
=0和
to_deleted
=0按
创建的顺序


我想你在查询中提到的,它可能是保留关键字,所以请尝试一些不同的字段

尝试在(to)和(from)中加上反勾号,但它给了我这个错误未知列“to”in“where子句”列
to
是否存在于您的表
消息中?您能给出完整的表模式吗?您确定消息正确吗?我现在可以看看你的新查询吗?
SELECT * FROM messages WHERE `to` = '' AND ....
                                       ^ this one
SELECT * FROM messages WHERE `to` = ...
SELECT * FROM messages WHERE `from` = ...
                             ^ this one
SELECT * FROM messages WHERE to = '".$this->userid."' AND `to_viewed` = '0' AND `to_deleted` = '0' ORDER BY `created` DESC