如何存档一行数据?使用sql和php将一行数据从一个表移动到另一个表,删除第一个实例

如何存档一行数据?使用sql和php将一行数据从一个表移动到另一个表,删除第一个实例,php,sql,netbeans,mysqli,forms,Php,Sql,Netbeans,Mysqli,Forms,我在归档一行数据时遇到问题。用户输入存储在数据库“ServerName”列下的文本(服务器名)。单击按钮后,SQL应将该数据插入新表(archive_servers),然后将其从原始表中删除,但是,它将仅删除该数据,而不会将其插入新表中。 下面是我与数据库的PHP连接、连接检查、要插入、选择和删除的SQL语句以及用于输入表单的html <?php $message = ''; $db = new mysqli('localhost', 'root', '', 'isad235'); if(

我在归档一行数据时遇到问题。用户输入存储在数据库“ServerName”列下的文本(服务器名)。单击按钮后,SQL应将该数据插入新表(archive_servers),然后将其从原始表中删除,但是,它将仅删除该数据,而不会将其插入新表中。 下面是我与数据库的PHP连接、连接检查、要插入、选择和删除的SQL语句以及用于输入表单的html

<?php
$message = '';
$db = new mysqli('localhost', 'root', '', 'isad235');
if($db->connect_error)
{
    $message = $db->connect_error;
}
else
{
    $message = 'CONNECTION OK';

    $sql = "INSERT `archive_servers` SELECT * FROM `servers` WHERE `ServerName` = '".$_POST['name']."';"; 
    echo $sql;
    $sql = "DELETE FROM `servers` WHERE `ServerName` = '".$_POST['name']."';"; 
    echo $sql;
    $result = $db->query($sql);

    if ($db->error)
    {
        echo $message = $db->error;
    }
}
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form method="post"/>
            Server Name: <input type="text" name="name"/>
            <input type="submit" name="submit" value="Archive"/>
        </form>
    </body>
</html>

您没有执行插入部分。我还建议在删除行之前,通过查询(较慢但更安全)或简单的成功检查来检查插入是否成功

$sql = "INSERT `archive_servers` SELECT * FROM `servers` WHERE `ServerName` = '".$_POST['name']."';"; 
echo $sql;
$result = $db->query($sql);
$sql = "DELETE FROM `servers` WHERE `ServerName` = '".$_POST['name']."';"; 
echo $sql;
$result = $db->query($sql);

您的第一个错误是$sql=“INSERT INTO
archive\u servers
SELECT*FROM
servers
WHERE
ServerName
=”。“$\u POST['name']”

这部分代码只执行一次查询

您应该执行SQL两次(对于insert和delete)

这会帮你解决问题的:

$sql_insert = "INSERT `archive_servers` SELECT * FROM `servers` WHERE `ServerName` = '".$_POST['name']."';"; 
echo $sql_insert;
$insert_result = $db->query($sql_insert);
if ($db->error)
{
    echo $message = $db->error;
}
$sql_delete = "DELETE FROM `servers` WHERE `ServerName` = '".$_POST['name']."';"; 
echo $sql_delete;
$delete_result = $db->query($sql);
if ($db->error)
{
    echo $message = $db->error;
}

if ($insert_result && $delete_result) {
  echo 'Everything ok';
}
else {
  echo 'Error occured!';
}
$sql_insert = "INSERT `archive_servers` SELECT * FROM `servers` WHERE `ServerName` = '".$_POST['name']."';"; 
echo $sql_insert;
$insert_result = $db->query($sql_insert);
if ($db->error)
{
    echo $message = $db->error;
}
$sql_delete = "DELETE FROM `servers` WHERE `ServerName` = '".$_POST['name']."';"; 
echo $sql_delete;
$delete_result = $db->query($sql);
if ($db->error)
{
    echo $message = $db->error;
}

if ($insert_result && $delete_result) {
  echo 'Everything ok';
}
else {
  echo 'Error occured!';
}