将多个查询保存到sql数据库

时间:2016-01-12 22:33:39

标签: mysql

我正在尝试将多个查询保存到两个不同表的数据库中。以下是我试过无效的代码。 firsttable.a与secondtable.id相同,con保存连接信息,一切都可以完美地保存一个查询。这里有什么我想念的吗?

if(empty($id)){
$uuid = uniqid();
$query = "INSERT INTO firsttable (`id`, `a`, `b`, `uuid`) VALUES (NULL, '$a', '$b', '$uuid')";

$query2 = "INSERT INTO secondtable (`id`, `c`, `d`, `uuid`) VALUES (NULL, '$c', '$d', '$uuid')";
}else{
$query = "UPDATE `firsttable` SET `id` = '$id', `a` = '$a', `b` = '$b', `uuid` = '$uuid' WHERE `id` = $id";

$query2 = "Update INTO secondtable SET `id` = '$a', `c` = '$c', `d` = '$d',

if(!mysqli_multi_query($this->_con, $query;$query2)){
                    throw new Exception(  mysqli_error($this->_con) );

1 个答案:

答案 0 :(得分:1)

mysql_multi_query有两个参数:数据库连接和单个字符串。

您需要将两个查询连接在一起作为字符串:

mysqli_multi_query($this->con, $query1 . ';' . $query2);

或者您可能尝试做的事情:

mysqli_multi_query($this->con, "$query1;$query2");

php documentation开始,了解如何检索后续查询的结果集:

  

要从第一个查询中检索结果集,您可以使用mysqli_use_result()mysqli_store_result()。可以使用mysqli_more_results()mysqli_next_result()处理所有后续查询结果。

第一个例子说明了它是如何运作的。

在您的示例中,正确的语法是UPDATE tablename ...,而不是UPDATE INTO tablename ...