有一种方法可以在一个查询中更新两个表吗?下面是我的代码示例。如何将这两个更新查询合二为一?提前谢谢!
<?php
// DATABASE UPDATE
if (isset($_POST['submit']) or isset($_GET['submit'])){
// 1st QUERY
$db =& JFactory::getDBO();
$query_1 = "UPDATE table_1
SET name = '".$_POST["name"]."',
surename = '".$_POST["surename"]."'
WHERE id=1";
$db->setQuery($query_1);
$db->query();
// 2nd QUERY
$db =& JFactory::getDBO();
$query_2 = "UPDATE table_2
SET team_id = '".$_POST["team_id"]."',
SET team_name = '".$_POST["team_name"]."'
";
$db->setQuery($query_2);
$db->query(); } ?>
答案 0 :(得分:5)
MySQL实际上允许在单个查询中对多个表进行更新(尽管通常一次只对您的应用程序执行一次)。
UPDATE table_1, table_2
SET table_1.field = <some value>, table_2.field = <some value>
WHERE table_1.field2 = table_2.field_2
AND table_1.field_3 = <some other value>
请参阅:http://dev.mysql.com/doc/refman/5.1/en/update.html
正如其他人所说,你应该考虑使用准备好的陈述。
答案 1 :(得分:1)
使用交易,只有InnoDB引擎支持它。
的MySQL&GT;开始交易; 查询正常,0行受影响(0.00秒)
{首先插入此处}
{Second Insert Here}
的MySQL&GT;承诺; 查询正常,0行受影响(0.00秒)
请注意,您必须编写提交,因为如果不这样做,则不会将其刷新到数据库。