我正在尝试在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);
答案 0 :(得分:1)
除了上面的评论之外,你的sql语句之间需要一个分号
multi_query - 执行由分号连接的一个或多个查询。
答案 1 :(得分:1)
尽量避免使用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')");