Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何结合使用插入查询和删除查询_Php_Mysql - Fatal编程技术网

PHP如何结合使用插入查询和删除查询

PHP如何结合使用插入查询和删除查询,php,mysql,Php,Mysql,我花了很多时间寻找这个问题的解决方案,但是我没有找到答案,我试图将一行从一个表归档到另一个表,然后从原始表中删除该行。我已经设置了我认为应该如何设置的代码,但它只移动记录,而没有将其从原始表中删除 mysql_connect('localhost', 'brokensky', 'password'); mysql_select_db('isad235database'); $select = filter_var($_POST['selectlist'],FILTER_SANITIZE_STR

我花了很多时间寻找这个问题的解决方案,但是我没有找到答案,我试图将一行从一个表归档到另一个表,然后从原始表中删除该行。我已经设置了我认为应该如何设置的代码,但它只移动记录,而没有将其从原始表中删除

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'";

由于我已经环顾四周好几个小时,对此没有一个像样的答案,我认为这对其他人也可能有用。

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


另请参见:

您需要按顺序执行

$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.

你不能在一个mysql\u query()函数调用中使用多个查询(你甚至不能使用
mysql\u query
==
也会给你一个错误。可能的重复>这仍然不起作用,只有移动完成了记录的删除才不会发生。简单的错误…你使用的是双等于。
(==)
。它应该是单个=。更正。为什么他不能使用多查询,例如受
mysqlnd
支持?@DanFromGermany
mysqlnd
在面向预算的主机上不受很好的支持。最好坚持基本原则。不管怎样,我对它不熟悉——也许你想写一个答案?