![](/img/trans.png)
[英]PHP MYSQL - insert a new record but requires column from select statement in another table - fails in php
[英]PHP MySQL - Move record to another table, Select, Insert, Delete
我有两个结构相同的表。 我试图将整个记录从一个表移动到另一个表,然后从源表中删除。 如果我分别执行这两个语句,它将起作用,即选择并插入2。删除。
如何将这两个sql语句组合在一起,以便两个语句都在一个语句之内,并且可以一个接一个地被执行。 到目前为止,这是mysql语句,其未执行
$q=" INSERT INTO archived (SELECT * FROM table1 WHERE id='$id') ;
DELETE FROM table1 WHERE id='$id'; ";
您可以使用一个SQL语句字符串执行多个SQL语句,方法是用半冒号mysqli_multi_query()
它们,并将最终语句传递给mysqli_multi_query()
函数。
$con = new mysqli('localhost', 'user', 'pass', 'demo');
// username is user , password is pass ,connecting to the demo database on the localhost host:
if($con->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
$sql = "INSERT INTO archived SELECT * FROM table1 WHERE id='$id';";
$sql .= "DELETE FROM table1 WHERE id='$id'; ";
if (!$mysqli->multi_query($sql)) {
echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
else{
echo "Executed successfully";
}
你可以做
function mysql_multiquery($queries,$conn)
{
$queries = explode(";", $queries);
foreach ($queries as $query)
$query = mysql_query(trim($query),$conn);
}
通话功能
mysql_multiquery($sql,$conn);
如果您只想从php发送一个命令,请使用两个查询编写存储过程。 然后,您的php命令执行该过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.