我的MySQL查询有问题。我收到一个我无法修复的错误,仍然需要一些帮助。这是我的PHP脚本(show_messages.php)中的代码:
<?php
include_once 'config.php';
$username = @$_GET['user'];
$password = @$_GET['password'];
$message_from = @$_GET['from'];
$message_to = @$_GET['to'];
if(($login = login($username, $password)) != 1) {
echo $login; // return the value of the error
exit;
} else {
$mysql = mysql_query("SELECT * FROM messages WHERE from LIKE $message_from AND to LIKE $message_to ORDER BY time ASC LIMIT 50");
$rows = @mysql_numrows($mysql);
echo 'MySQL Error: ' . mysql_error().'<br/>';
if($rows > 0) {
$i = 0;
while($i < $rows) {
$result_content = mysql_result($mysql, $i, 'content');
$result_from = mysql_result($mysql, $i, 'from');
echo $result_from.'<br/>'.$result_content.'<br/><br/>';
$i++;
}
} else {
echo 'No messages.';
}
}
?>
这是我得到的错误:
MySQL Error: 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 LIKE 8 AND to LIKE 1 ORDER BY time ASC LIMIT 50' at line 1
这是我的数据库结构:我的数据库结构的 图像
我不知道该怎么办。我正在开发一个应用程序,但如果没有事先解决此问题,我将无法继续前进。提前致谢。
(如果有人知道如何使其他代码更好,请随时纠正我,我不是专业人士,我只有15岁:P)
编辑2: 如果有人可以在另一件事上帮助我,我会在这条线上收到警告:
$rows = mysql_numrows($mysql);
我必须将其更改为$rows = @mysql_numrows($mysql);
不会显示警告的内容,但这仍然是警告,如果有人足够帮助我解决问题,请这样做。再次感谢。
我重写了整个问题,并在图像上附加了一个链接。我可以提供该表的整个SQL转储。我昨天创建的。谢谢。
—
弗拉德
该字
—
13年
from
(您的列名)是保留字。您需要像这样围绕它`from`
。您还需要在SQL字符串中的变量周围加上单引号。
@MaxMackie,有效。谢谢。如果需要,请回答,我将选择它。
—
弗拉德
很高兴为您服务,我补充了我的评论作为答案。
—
13年
messages
台什么样子的?是from
与to
数字或字符串?