如何在 php 中执行两个 sql 查询?
How to execute two sql queries in php?
我正在尝试在 php 页面中执行此代码以将一些数据存储在我的数据库中。
问题是我想 Insert 数据,但是由于 外键约束 这是不可能的。因此,在我的 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 - 执行一个或多个由分号连接的查询。
尽量避免使用multi_query
。向 MySQL 服务器发送一个小查询并不会真正影响性能,并且确实会阻止某种限制类似 SQL 注入的效果。
您的情况不需要 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 页面中执行此代码以将一些数据存储在我的数据库中。 问题是我想 Insert 数据,但是由于 外键约束 这是不可能的。因此,在我的 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 - 执行一个或多个由分号连接的查询。
尽量避免使用multi_query
。向 MySQL 服务器发送一个小查询并不会真正影响性能,并且确实会阻止某种限制类似 SQL 注入的效果。
您的情况不需要 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')");