繁体   English   中英

在SQL中使用PHP变量

[英]Using PHP variables in SQL

我正在尝试在INSERT SQL语句中使用PHP变量。 我已经看过以前的答案,但是无法让我工作。 这是代码。

mysql_query("INSERT INTO message (message_id, from, content) values ('', " . $uid . ", 'test message content')");

主要问题是from保留字 ,应该放在反引号中。

mysql_query("INSERT INTO message (message_id, `from`, content) VALUES ...");

但我也建议您停止使用不推荐使用的mysql_*函数。 我建议您看一下PDO和带参数的预备语句。

如果message_id是主键,则除非有值,否则无需在查询中包括它。

mysql_query("INSERT INTO message (`from`, `content`) values (" . $uid . ", 'test message content')");

您的查询中至少有三个问题。 其中两个是语法错误,一个是巨大的漏洞。

为了使查询正常工作,您应该编写如下:

mysql_query("INSERT INTO message (message_id, `from`, content) values ('', '" . $uid . "', 'test message content')");`

以下是错误的摘要:
-正如另一个用户指出的那样,“ from”是关键字,您不应使用它来命名表列。 如果您确实要使用这样的名称,则必须使用反引号在查询中进行指示。
-$ uid的值应用单引号引起来。
-第三个也是最重要的错误是您的查询容易受到SQL Injection的攻击。 您应该使用准备好的语句,这样可以保护您免受此类攻击。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM