如何存档一行数据?使用sql和php将一行数据从一个表移动到另一个表,删除第一个实例
我在归档一行数据时遇到问题。用户输入存储在数据库“ServerName”列下的文本(服务器名)。单击按钮后,SQL应将该数据插入新表(archive_servers),然后将其从原始表中删除,但是,它将仅删除该数据,而不会将其插入新表中。 下面是我与数据库的PHP连接、连接检查、要插入、选择和删除的SQL语句以及用于输入表单的html如何存档一行数据?使用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(
<?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 INTOarchive\u servers
SELECT*FROMservers
WHEREServerName
=”。“$\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!';
}