【发布时间】:2014-04-23 21:08:41
【问题描述】:
注册过程中的 PHP 代码:
$query="INSERT INTO `users`(`email`, `password`, `role`, `time_registration`)
VALUES ('".mysqli_real_escape_string($con, trim($_SESSION['reg']['email']))."',
'".hash('SHA512',trim($_POST['password']))."',
'".mysqli_real_escape_string($con, trim($_SESSION['rola']))."',
NOW())";
if(!mysqli_query($con, $query)){
error(".....");
}else{
这一切都很好。执行第一个查询并将数据存储到“用户”表中。但是问题来了。下一个 php 代码生成新的 mysql 查询,该查询永远不会执行。但是当我将它复制到 PHPmyAdmin 时,它就可以工作了......
$last_id=$con->insert_id;
$query='';
foreach($_SESSION['reg'] as $key=>$value){
if($value!=''){
$query.=" INSERT INTO user_detail (id_user,id_item,value) VALUES ('".$last_id."', (SELECT id_item FROM profil_items WHERE name='".$key."'), '".mysqli_real_escape_string($con, $value)."');";
}
}
if(!mysqli_query($con, $query)){
echo $query;
}else{
header('Location: ...somewhere....');
}
}
Mysqli 错误消息:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解在 'INSERT INTO user_detail (id_user,id_item,value) VALUES ('14' , (SELECT id_po' at line 1".
我不明白。如果语法有错误,如何在 PHPmyAdmin 中执行而不出错?
【问题讨论】:
-
错误消息中的查询似乎与“损坏”代码中的查询不匹配。
-
@ogc-nick 我想它已经被翻译了:polozka=item, hodnota=value
-
发布查询的确切文本(由您的
echo语句输出)。 -
Multiple statements or multi queries must be executed with mysqli_multi_query().-- reference php.net -
mysqli_multi_query() 修复它。谢谢你。 (polozka=item, hodnota=value - 为了更好理解,我翻译了名称)
标签: php mysql syntax mysqli phpmyadmin