【发布时间】:2016-11-22 18:58:55
【问题描述】:
我有三个相关的表“users”、“category”和“interest_area”;我想将表单中的数据插入“users”表,然后从“category”表中选择另一个数据并使用PHP插入“interest_area”表。
它显示的错误是:
错误:INSERT INTO users(user_id, first_name, last_name, Higher_education, user_name, pass_word) VALUES('' , '87878787' , 'iuiu' , 'iuiu' , 'root' , '');INSERT INTO interest_area ( category_id) SELECT category_id FROM category WHERE category_name = 'ASP'; Erreur de syntaxe pr's de 'INSERT INTO interest_area (category_id) SELECT category_id FROM category ' 2
我的 PHP 代码是:
<?php
if (isset($_POST["interest_area"])){
$f_name = $_POST["firstname"];
$l_name = $_POST["last_name"];
$h_education = $_POST["higher_education"];
$i_area = $_POST["interest_area"];
$email = $_POST["email"];
$u_name = $_POST["user_name"];
$p_word = $_POST["pass_word"];
$sql = "INSERT INTO users(user_id, first_name, last_name, higher_education, user_name, pass_word)
VALUES('' , '$f_name' , '$l_name' , '$h_education' , '$username' , '$password');";
$sql .= "INSERT INTO interest_area (category_id)
SELECT category_id FROM category
WHERE category_name = '$i_area';";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";}
else { echo "Error: " . $sql . "<br>" . $conn->error;}
}
?>
【问题讨论】:
-
一个查询调用中不能有多个语句。它是针对一种形式的 sql 注入攻击的基本防御机制。您必须有两个 $sql 变量,并为每个变量分别调用
query()。 -
mysqli_multi_query()@MarcB 呢?