2010-04-22 82 views
0

我想了解更多关于SQL的知识,我想更新表格;PHP/MySQL - 在一个请求中更新2个表格

$query3 = "INSERT INTO `$table1`, `$table2` ($table1.DISPLAY_NAME, $table1.EMAIL_ACCOUNT, $table2.DISPLAY_NAME, $table2.EMAIL_ACCOUNT) values ('" . DISPLAY_NAME . "', '" . EMAIL_ADDRESS . "', '" . $get['rn'] . "', '" . $email . "')"; 

有人能指出我在正确的方向,我会怎么做呢?当前错误是:

您的SQL语法错误;检查对应于你的MySQL服务器版本在线路附近使用“contacts_ACT_Web_Designs(contacts_E_Jackson.DISPLAY_NAME,contacts_E_Jackson”正确的语法手册1

+1

我希望你能清理你的输入。 PHP不具有参数化查询的概念吗?就目前而言,我更担心SQL注入。 – spender 2010-04-22 11:07:19

+0

是的,即时通讯相当多的PHP只是不如此使用SQL。 (我在页面顶部有过滤器[note $ get not $ _GET]) – 2010-04-22 11:09:56

+1

想知道,为什么要将相同的信息插入同一数据库中的两个不同的表中? – MAS1 2010-04-22 11:12:21

回答

2

在MуSQL中,你只能将记录插入到一​​个表中,同时mysql_query()不支持多个查询,因此您应该将插入内容分割为两个请求并逐个执行。

1

确定一个MySQL INSERT语句可以插入到两个表?我有从来没有听说过能够在任何数据库中插入这种方式,你是否尝试过两个单独的插入语句(每个表有一个)?

+0

好的。我只是想尽可能多地减少查询的数量。 – 2010-04-22 11:10:57

0

MySQL不能一次插入到两个表中,因此您必须将查询拆分为两个单独的表。如果您需要将它们一起插入(如果一个失败,另一个将不能插入),那么您可以使用transactions

基本上你开始一个事务运行查询,如果出现任何问题你做一个回滚,如果一切顺利,你提交事务。

另外据我记得你的引擎必须是InnoDB交易可用。