PHP如何在连接中使用插入查询和删除查询

时间:2015-01-27 19:23:51

标签: php mysql

我搜索了很多解决这个问题的方法,但是我找不到答案,我试图将一行从一个表归档到另一个表,然后从原始表中删除该行。我有代码设置我认为它应该是如何但它只移动记录它不会从原始表中删除它。

mysql_connect('localhost', 'brokensky', 'password');
mysql_select_db('isad235database');

$select = filter_var($_POST['selectlist'],FILTER_SANITIZE_STRING);

$query = "INSERT INTO `serversarchive` (`Server_ID`,`Server_name` , `Location` , `MAC_Address` , `Port_Number` , `IP_Address`, `Operating_System`, `Administrator`, `Contact_Number`, `Email` , `Second_Contact`, `Second_Contact_Number`, `Comments`)
SELECT * FROM `servers`
WHERE `Server_ID` = '$select'; DELETE FROM server WHERE Server_ID = = '$select'";

由于我已经环顾了好几个小时并没有得到合适的答案,我认为这也可能对其他人有用。

2 个答案:

答案 0 :(得分:2)

您需要按顺序执行这些步骤。如果它们需要作为原子单元发生,请使用事务。

另请参阅:PHP + MySQL transactions examples

答案 1 :(得分:0)

您需要按顺序执行。

$query = "INSERT INTO `serversarchive` (`Server_ID`,`Server_name` , `Location` , `MAC_Address` , `Port_Number` , `IP_Address`, `Operating_System`, `Administrator`, `Contact_Number`, `Email` , `Second_Contact`, `Second_Contact_Number`, `Comments`)
SELECT * FROM `servers`
WHERE `Server_ID` = '$select'"; 

//execute first  

$query2 = "DELETE FROM server WHERE Server_ID = '$select'"; // == should be single =

//now execute this one.