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

如何在php中执行两个sql查询?,php,mysql,mysqli-multi-query,Php,Mysql,Mysqli Multi Query,我试图在php页面中执行此代码,以便在数据库中存储一些数据。 问题是我想插入数据,但由于外键约束不可能。因此,在我的php代码中,我想执行两个sql查询。第一个用于禁用外键检查,第二个用于插入数据 当我在phpmyadmin中尝试它时,它起作用了。但是手动的。我想把它放在php代码上 这是我的密码。参数$conexion是执行我的sql查询的参数 有什么想法吗 $sql = "SET foreign_key_checks=0"; $sql. = "INSERT INTO routes (titl

我试图在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);

除了上面的注释外,sql语句之间还需要一个分号


multi_query-执行一个或多个由分号连接的查询

尽量避免使用
多重查询
。向MySQL服务器发送一个小查询并不会真正影响性能,也不会限制SQL注入之类的效果

在您的情况下,不需要
多查询
。如果在一个脚本中发送两个查询,则两个查询都会在同一个连接上进行。
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')");