php - 如何在php中执行两个sql查询?

标签 php mysql mysqli-multi-query

我正在尝试在 php 页面中执行此代码以在数据库中存储一些数据。 问题是我想插入数据,但由于外键约束这是不可能的。因此,在我的 php 代码中,我想执行两个 sql 查询。第一个用于禁用外键检查,第二个用于插入数据

当我在 phpmyadmin 中尝试它时,它起作用了。但要手动。我想把它放在php代码中。

这是我的代码。参数$conexion 是执行我的sql 查询的参数

有什么想法吗?

$sql = "SET foreign_key_checks=0";
$sql. = "INSERT INTO routes (title, distance, subtitle) VALUES ('".$_POST['title']."','".$_POST['distance']."', '".$_POST['subtitle']."');";

$conexion->multi_query($sql);

最佳答案

尽量避免使用multi_query。向 MySQL 服务器发送一个小查询并不会真正影响性能,并且确实可以防止 SQL 注入(inject)等限制效果。

就您而言,不需要multi_query。如果您在脚本中发送两个查询,则两个查询都会在同一连接上进行。 SET 查询会影响当前连接。

// Protect against SQL injection
$title = $conexion->escape_string($_POST['title']);
$distance = $conexion->escape_string($_POST['distance']);
$subtitle = $conexion->escape_string($_POST['subtitle']);

// Execute queries
$conexion->query("SET forgeign_key_checks=0");
$conexion->query("INSERT INTO routes (title, distance, subtitle) VALUES ('$tittle', '$distance', '$subtitle')");

关于php - 如何在php中执行两个sql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31035954/

相关文章:

java - 在 solr 中进行分面时出现问题

php - 为什么mcrypt中会出现这些奇怪的字符?

php - "Commands out of sync; you can' t 现在运行此命令”- 由 mysqli::multi_query 引起

php - 如何在 PHP 中使用 mysqli_multi_query 依次执行 2 个 SQL 查询

php - 在两个日期之间过滤 MYSQL

mysql - 反转表内容的 SQL 查询

mysql - 将数据从csv导入到mysql的脚本

php - 永不结束 for() 和 while() 循环

php - 如何使用mysqli->multi_query()?

php - 将 PHP 多维数组返回到 Javascript/AJAX