学习mysql插入返回语法错误

Posted

技术标签:

【中文标题】学习mysql插入返回语法错误【英文标题】:learning mysql insert returns syntax error 【发布时间】:2013-02-21 15:33:10 【问题描述】:

我正在尝试为用户创建一个简单的插入语句......但它出错了......我只尝试了值并且它有效,它必须与我在插入语句中处理数组的方式有关吗?

有什么想法吗?

                if ($new_user_data) 
                    $mysqli->query("INSERT INTO users (user_name, user_year, user_sex, user_pic, user_level, user_password, user_email)
                                    VALUES ( ". $new_user_data['user_name'] .",". $new_user_data['user_year'] .",". $new_user_data['user_sex'] .",". $new_user_data['user_pic'] .",1,". $new_user_data['user_password'] .",". $new_user_data['user_email'] ." )");
                    print_r($mysqli->error);
                

错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.coms )' at line 2

【问题讨论】:

请回显到 sql 查询。那会显示更多 @s.lenders 你是什么意思?我是新手,请具体说明:) 你想让我回显 mysqli->query?还是 $new_user_data? 【参考方案1】:

您需要将字符串用引号括起来:

$mysqli->query("INSERT INTO users (user_name, user_year, user_sex, user_pic, user_level, user_password, user_email)
                VALUES ( '". $new_user_data['user_name'] ."','". $new_user_data['user_year'] ."','". $new_user_data['user_sex'] ."','". $new_user_data['user_pic'] ."',1,'". $new_user_data['user_password'] ."','". $new_user_data['user_email'] ." )'");

我知道我看不到你的所有代码,但看起来你对 SQL 注入很开放。

【讨论】:

Ty,就是这样……我会在所有东西到达 INSERT 之前对其进行消毒。 是的,最重要的是,使用参数化查询,也不会有这个问题。 @salivan:为什么要消毒?穿上你的大程序员裤子,学习使用参数化查询。 现在是学习正确方法的时候了。 @AndyLester 我已经做到了。如果您没有注意到您正在评论 1 年前的帖子。

以上是关于学习mysql插入返回语法错误的主要内容,如果未能解决你的问题,请参考以下文章

更新前的 MySQL 使用 PhpMyAdmin 触发插入语法错误

MySQL 常用插入语法总结

MySQL插入包含单引号和双引号的数据,给出语法错误

错误 1604 - 错误的语法 MySQL [关闭]

“mysql 语法错误”,对问题没有真正的了解

当我尝试在 mysql 中创建触发器时出现语法错误