繁体   English   中英

PHP MySQL-将记录移到另一个表,选择,插入,删除

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM