php MySQL - WHERE、AND 和 OR 语法

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12178069/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 02:59:19  来源:igfitidea点击:

MySQL - WHERE, AND & OR syntax

phpmysqlchat

提问by gskartwii

I am programming a private chat thing, but now I get this problem:
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 'to='gskartwii' OR sender='gskartwii' AND to='gs'' at line 1
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\rivase\private.php on line 38
This is my code:

我正在编写一个私人聊天程序,但现在我遇到了这个问题:
你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的“to='gskartwii' OR sender='gskartwii' AND to='gs''附近使用的正确语法
警告:mysql_fetch_assoc() 期望参数 1 为资源,布尔值在 C:\xampp\htdocs\rivase\private.php 第 38 行给出
这是我的代码:

<!-- language: php -->
<?php
$result=mysql_query("SELECT * FROM rivase_chat_posts WHERE sender='$user' AND to='$user2' OR sender='$user2' AND to='$user'");
echo mysql_error();
while ($row = mysql_fetch_assoc($result)) {
    $sender=$row['sender'];
    $content=$row['content'];
    $time=$row['time'];
    echo "$sender : $content <span class='hidden'>$time</span><br />\n";
}
?>

Thanks for you all for the quick and good replies!

感谢大家的快速和良好的答复!

回答by juergen d

try escaping towith backticks

尝试to用反引号转义

$result=mysql_query("SELECT * FROM rivase_chat_posts 
                    WHERE sender='$user' AND `to`='$user2' 
                    OR sender='$user2' AND `to`='$user'");

since it is a reserved word in MySQL

因为它是 MySQL 中的保留字

回答by Wayne Whitty

TO is a reserved word.

TO 是保留字

$result=mysql_query("SELECT * FROM rivase_chat_posts WHERE sender='$user' AND `to`='$user2' OR sender='$user2' AND `to`='$user'");

Should work.

应该管用。