我在归档一行数据时遇到问题。用户输入存储在数据库“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>
我已经测试了连接,一切正常,我回显了$\u帖子,它返回了单词“Array”。
我可能错过了一些非常愚蠢的东西,比如不应该出现的字符,或者其他一些小的语法错误。我正在使用NetBeans,在运行项目时它不会给我任何错误。任何帮助都将不胜感激。
您的第一个错误是$sql="INSERT INTOarchive_servers
SELECT*从服务器
WHEREServerName
= '".$_POST['name']."';“;
您没有执行插入部分。我还建议在删除行之前,通过查询(较慢但更安全)或简单的成功检查来检查插入是否成功。
$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 `archive_servers` SELECT * FROM `servers` WHERE `ServerName` = '".$_POST['name']."';";
echo $sql;
$sql_delete = "DELETE FROM `servers` WHERE `ServerName` = '".$_POST['name']."';";
echo $sql_delete;
$result = $db->query($sql_delete);
if ($db->error)
{
echo $message = $db->error;
}
这部分代码只执行一次查询。
您应该执行SQL两次(用于插入和删除)。
这会帮你解决问题的:
$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!';
}
问题内容: 我有2个不同的表,但各列的命名略有不同。我想从一个表中获取信息,然后将其放入另一个表中。仅当表1中的“信息字段”不为null时,才需要将表1中的信息放入表2中。表2在创建任何东西时都有一个唯一的ID,因此插入的任何东西都需要获得下一个可用的ID号。 表格1 表2 问题答案: 这应该工作。您无需担心Table2中的identify字段。
问题内容: 我试图将数据从一个表插入到另一个表,这是我收到的错误消息: 错误:将INERT插入到content2(d1,d2,d3)值(John,Doo,24); 错误:在字段列表中插入未知列’John’错误:INSERT INTO content2(d1,d2,d3)VALUES(Mary,Moe,36); ‘字段列表’中的未知列’Mary’错误:INSERT INTO content2(d1,
本文向大家介绍sql存储过程实例--动态根据表数据复制一个表的数据到另一个表,包括了sql存储过程实例--动态根据表数据复制一个表的数据到另一个表的使用技巧和注意事项,需要的朋友参考一下 动态根据表数据复制一个表的数据到另一个表 把track表的记录 根据mac_id后两位数字,复制到对应track_? 的表中 如:mac_id=12345678910,则后两位10 对应表为track_10,就把
我在课堂上创建了两个列表。 其中一个称为预算,包含元素section、month和sum,返回以下内容: [Budzet{sec='AGD/RTV',月='01',和=96},Budzet{sec='AGD/RTV',月='03',和=30},Budzet{sec='食品',月='04',和=23},Budzet{sec='游戏',月='09',和=1084}...] 这是SQL查询 第二个是元素
问题内容: 我有两个数据库,一个叫做,一个叫做。由于我想练习插入,更新内容,因此我想将某些表从复制到。 我要复制的表称为: 我试图做的是(使用SSMS)右键单击表格,但其中没有“复制”! 问题答案: 假设您有两个数据库,例如A和B: 如果目标表不存在,将创建以下脚本(我不建议这样): INTO COPY_TABLE_HERE FROM A.dbo.table_from_A table_A 如果目标
问题内容: 我想从一个表中读取所有数据,然后将一些数据插入到另一个表中。我的查询是 但我有一个错误 请帮我。 问题答案: 您可以使用INSERT … SELECT语法。请注意,您可以在SELECT部分中直接引用“ 1”。