簡體   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