Tôi có một vấn đề với truy vấn MySQL của tôi. Tôi gặp một lỗi mà tôi không thể sửa, và vẫn cần một số trợ giúp. Đây là mã của tôi trong tập lệnh PHP của tôi (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.';
}
}
?>
Đây là lỗi mà tôi đang nhận được:
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
Đây là cấu trúc cơ sở dữ liệu của tôi: Hình ảnh cấu trúc DB của tôi
Tôi không biết phải làm gì. Tôi đang phát triển một ứng dụng và tôi không thể tiếp tục mà không khắc phục vấn đề này trước đó. Cảm ơn trước.
(Nếu ai biết cách làm cho mã khác tốt hơn, vui lòng sửa tôi, tôi không phải là người chuyên nghiệp, tôi chỉ mới 15 tuổi: P)
EDIT 2: Nếu bất cứ ai có thể giúp tôi về một điều khác, tôi sẽ nhận được một cảnh báo về dòng này:
$rows = mysql_numrows($mysql);
Tôi phải đổi nó thành $rows = @mysql_numrows($mysql);
vì vậy nó sẽ không hiển thị cảnh báo, nhưng nó vẫn là một cảnh báo, và nếu có ai đủ tử tế để giúp tôi giải quyết nó, xin vui lòng làm. Cảm ơn một lần nữa.
from
(tên cột của bạn) là một từ dành riêng. Bạn cần đặt backticks xung quanh nó như thế này `from`
. Bạn cũng sẽ muốn đặt các trích dẫn đơn xung quanh các biến trong chuỗi SQL.
messages
Bàn trông như thế nào? Làfrom
vàto
số hay chuỗi?