如何将两个mySQL INSERT查询合并为一个?

时间:2017-01-19 20:56:40

标签: php mysql

有没有办法将两个INSERT查询合并到一个查询中?

谢谢

    mysql_query("INSERT into `new_table` (`hash`,`first_visit`, `country`, `browser`) values ('$hash',CURDATE(), '$details->geoplugin_countryCode','$_SERVER[HTTP_USER_AGENT]')");
    mysql_query("INSERT into `behaviour` (`hash`,`page`,`url`,`entry`, `ref`) values ('$hash','$page','$url','$entry', '$ref')");

2 个答案:

答案 0 :(得分:1)

根据文档“mysql_query()向与指定link_identifier关联的服务器上的当前活动数据库发送唯一查询(不支持多个查询)。”所以,不,你不能组合这些插入。

但您可以使用multi_query并执行以下操作:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$hash  = "foo" ; 
$page = "bar" ;
$url =  "baz" ;
$entry = "something" 
$ref  = "silly" ; 


// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO newtable (hash, first_visit, country, browser)
VALUES ('$hash',CURDATE(), '$details>geoplugin_countryCode','$_SERVER[HTTP_USER_AGENT]');";
$sql .= "INSERT INTO behaviour (hash, page, url, entry, ref)
VALUES ( $hash, $page, $url, $entry, $ref);";

if ($conn->multi_query($sql) === TRUE) {
    echo "New records created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

答案 1 :(得分:-3)

make install DESTDIR=~/somesoft

添加;在声明之后

编辑:仍有2个数据库查询,但发送1个请求