当前位置: 首页 > 知识库问答 >
问题:

php脚本中的mysql插入查询不起作用

郑宇
2023-03-14

我有一个php脚本,从一个表中获取数据,然后尝试将获得的数据插入到第一个表的第二个表副本中:

function copy_data($id,$mysql_conn){
 if($res=mysql_query("SELECT * from table1 WHERE id='".$id."'", $mysql_conn)){
       if($row=mysql_fetch_array($res)){
            $sql  ="INSERT INTO table2 (id, Field1, Field2) values('" . $row['id'] . "', '" . $row['Field1'] . "', '" . $row['Field2'] . "')";
            mysql_query($sql,$mysql_conn);
           }
}
}   
copy_data($id,$mysql_conn);// $id is id of the element I want to add 

插入查询工作正常,但有一种情况下会出现异常:其中一个字段包含失败查询的字符exp:INSERT INTO table2(id,Field1,Field2)值('12','Company','Kurt's Reifen-Shop')异常来自字符如何插入包含此字符的php变量。

共有3个答案

穆阳炎
2023-03-14

我不明白你是如何把它放到第一个表中的,但是你应该使用mysql\u real\u escape\u字符串,比如$field1=mysql\u real\u escape\u字符串($row['field1']);而不是把$field1放在这里,因为它现在是安全的

司寇昱
2023-03-14

只需一句话即可:

$id = mysql_real_escape_string($id);
INSERT INTO table2 (id, Field1, Field2) SELECT id, Field1, Field2 FROM table1 WHERE id='".$id."'"
江嘉悦
2023-03-14

在将数据插入$sql之前,必须先转义数据:

function copy_data($id,$mysql_conn){
 if($res=mssql_query("SELECT * from table1 WHERE id='".$id."'", $mysql_conn)){
       if($row=mysql_fetch_array($res)){
            $row['Field1'] = mysql_real_escape_string($row['Field1']);
            $row['Field2'] = mysql_real_escape_string($row['Field2']);
            $sql  ="INSERT INTO table2 (id, Field1, Field2) values('" . $row['id'] . "', '" . $row['Field1'] . "', '" . $row['Field2'] . "')";
            mysql_query($sql,$mysql_conn);
           }
}
}   
copy_data($id,$mysql_conn);// $id is id of the element I want to add 
 类似资料:
  • 我试图将变量插入数据库中的一个表中,由于某种原因,insert查询没有将我的值插入到所述数据库中。我已经测试了“test_input”函数,它工作得很好,我知道连接正在工作,因为我稍后在代码中使用的一个SELECT查询正在工作。我也知道输入是在$_PostSuperGlobal中,所以我认为这可能与insert查询有关,排除了其他可能性。这个查询有什么问题吗?以下是我的php代码: 这是我的HTM

  • 问题内容: 我正在尝试从名为user_enrole的表中删除所有记录。 我认为查询的语法没有错,但这给了我错误提示 #1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’* FROM user_enrole’附近使用正确的语法 我已经仔细检查了我的语法,但我无法找出问题出在哪里,请有人指出。 是由于该表与使用表之间的关系而发生的还是什么? 问题答案: 您无需在删

  • 问题内容: 这里的另一个新手..我正在尝试修复以下代码,以防止sql注入,并学习编写php和sql的新方法。 您的建议将不胜感激。 我修改了这个 为此,我没有得到相同的结果。 问题答案: 您不能将mysql与mysqli或PDO混合使用。您需要查看错误日志,因为这不可能实现-您应该看到大量致命错误。

  • 问题内容: 我是PHP新手。我安装了XAMPP并运行了Apache。我在XAMPP的htdocs中创建了helloworld.php,并在浏览器中显示了PHP。我的问题是,为什么我的HTML文件中的PHP脚本不显示在浏览器中?香港专业教育学院从未安装过PHP。我也应该安装吗?它会与XAMPP冲突吗?我的代码如下。任何帮助将不胜感激。提前致谢: 问题答案: XAMPP已经包含PHP,但是除非您以该脚

  • 问题内容: 我正在使用嵌套集模型在iPhone上的本地SQLite数据库中存储较大的数据层次结构。我从他们的网站上阅读了MySQL技术文章,了解如何执行此操作,但是他们建议的查询(以及我需要的查询)之一似乎不适用于SQLite,并且我不确定如何解决它。 SQLite报告不是列,我认为这是因为其子查询实现不完整。有人对如何解决此限制有任何想法吗? 查询的目的是获取给定父节点的所有直接子代。 问题答案

  • 我试图使用下面的MySQL语句