多个mySQL插入的问题

时间:2012-07-17 17:58:24

标签: mysql content-management-system last-insert-id

我正在构建一个简单的cms,我正在尝试在用户注册时自动在数据库中创建一个额外的cms。代码工作正常,第一个插入行,但是一旦我添加了第二个,它就停止了工作。我从StackOverflow得到了这个代码结构,我看了其他网站,它似乎是正确的,但对于我的生活,我无法弄清楚什么是错的。有什么建议吗?

$registerquery = mysql_query("BEGIN
INSERT INTO users (Username, Password, EmailAddress) 
VALUES ('".$username."', '".$password."', '".$email."')
INSERT INTO pages (page_title, page_owner) 
VALUES ('My New Page', LAST_INSERT_ID())
COMMIT");

1 个答案:

答案 0 :(得分:3)

您不能在使用PHP中的MySQL驱动程序的单个query()调用中发出两个查询。这是针对某些形式的SQL injection攻击的安全措施 - 您的代码容易受到攻击(除非您之前正在执行mysql_real_escape_string()或类似攻击)。

您还缺少;来分隔两个查询。

多查询语法

query1; query2; query3; etc...

你基本上得到了

query1 query2

这只是一个语法错误。