我正在尝试将多个查询保存到两个不同表的数据库中。以下是我试过无效的代码。 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) );
答案 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 ...
。