在SQL中使用PHP变量

时间:2012-07-31 15:54:40

标签: php mysql sql variables

我试图在INSERT SQL语句中使用PHP变量。我见过以前的答案,但不能让我的工作。这是代码..

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

3 个答案:

答案 0 :(得分:10)

主要问题是fromreserved word,应该是反叛。

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

但我还建议您停止使用已弃用的mysql_*函数。我建议您查看PDO和带参数的预处理语句。

答案 1 :(得分:0)

如果message_id是主键,除非您有值,否则不需要将其包含在查询中。

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

答案 2 :(得分:0)

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

要使查询有效,您应该按如下方式编写:

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

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