我正在编写一段代码,允许用户相互发送消息.每当我尝试将消息插入数据库时,我都会收到语法错误,但是,就我而言,我无法弄清楚我的错误是什么.我知道问题不在其中connect.php.另外,我得到了适当的值$from,$to以及$message让不能成为问题.这是我的代码:
session_start();
require_once('../setup/connect.php');
$from = $_SESSION['id'];
$to = $_REQUEST['id'];
$message = trim($_POST['msg_body']);
$insert = "INSERT INTO messages(to, from, msg) VALUES('$to', '$from', '$message')";
mysql_query($insert) or die(mysql_error());
header("Location: view_profile.php?id=$to");
Run Code Online (Sandbox Code Playgroud)
这是报告mysql_error()生成的:
您的SQL语法有错误; 查看与您的MySQL服务器版本相对应的手册,以便在'to,from,msg'附近使用正确的语法VALUES('7','6','嘿,你好吗?')在第1行
这是我的数据库结构的图像:
我感谢任何帮助!
TO并且FROM是保留关键字,必须使用反引号进行转义
INSERT INTO messages(`to`, `from`, msg)
VALUES('$to', '$from', '$message')
Run Code Online (Sandbox Code Playgroud)
如果您有时间或特权要更改,请不要使用保留关键字列表中的此类名称.它会给你未来的头痛.
作为一个旁注,查询是脆弱的SQL Injection,如果值(小号)从外面走了进来.请查看下面的文章,了解如何防止它.通过使用PreparedStatements,您可以摆脱使用值周围的单引号.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |