我正在尝试在 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/