这个查询出了什么问题?

时间:2013-10-16 10:25:28

标签: php mysql mysqli

我在最后30分钟后突破了我的头脑,但我不知道我在哪里做错了。我真的很困惑(')和(")。

$ arr值包含我通过打印echo $arr['given_name']检查的值。毫无疑问,在$ arr的数据中。

 $query="insert into user (fname,lname,email,gender) values('".$arr['given_name']."','".$arr['family_name']."','".$arr['email']."','".$arr['gender']."'";
 mysqli_query($con,$query);

我知道它的基本问题,但我仍然无法识别错误 你能告诉我我在哪里做错了吗?

4 个答案:

答案 0 :(得分:2)

我可以想象你会被括号混淆,“和' - 并错误地结束'。

为什么不使用准备好的陈述?这样可以解决您的困惑并使代码更具可读性!你得到了基本的参数类型检查。

$stmt = $mysqli->prepare("INSERT INTO user 
                          (fname,lname,email,gender) 
                          VALUES (?, ?, ?, ?)");
$stmt->bind_param('ssss', $arr['given_name'], 
                          $arr['family_name'], 
                          $arr['email'], 
                          $arr['gender']);
$stmt->execute();

另外,请确保在完整查询中进行了一些清理和检查。

答案 1 :(得分:1)

应该是:

$query="insert into user (fname,lname,email,gender) values('".$arr['given_name']."','".$arr['family_name']."','".$arr['email']."','".$arr['gender']."')";

你错过了一个结束括号。

答案 2 :(得分:1)

您忘记了值末尾的结束括号:

$query="insert into user (fname,lname,email,gender) values('".$arr['given_name']."','".$arr['family_name']."','".$arr['email']."','".$arr['gender']."')";
mysqli_query($con,$query);

答案 3 :(得分:0)

对于插入的值,

您是否错过了结束?