Mysql 此查询中存在SQL错误

Mysql 此查询中存在SQL错误,mysql,sql,coldfusion,Mysql,Sql,Coldfusion,我正在尝试注册我的CMS系统。但每当我尝试创建它时,它就会给我这个错误 以下信息仅供网站开发人员调试之用。 处理请求时出错 执行数据库查询时出错。 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第2行的“0”、“500000”、“500000”、“2012-11-02 22:12:11”、“20”、“1”、“hr-165-45.hd-20”附近使用的正确语法 SQL查询如下所示: <cfquery name="insertMale" datasource = "#DS

我正在尝试注册我的CMS系统。但每当我尝试创建它时,它就会给我这个错误

以下信息仅供网站开发人员调试之用。 处理请求时出错 执行数据库查询时出错。 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第2行的“0”、“500000”、“500000”、“2012-11-02 22:12:11”、“20”、“1”、“hr-165-45.hd-20”附近使用的正确语法

SQL查询如下所示:

<cfquery name="insertMale" datasource = "#DSN#">
INSERT INTO users (id, username, real_name, password, auth_ticket, rank, vip_points, credits, activity_points, activity_points_lastupdate, seasonal_currency, loyalty_points, look, gender, motto, mail, account_created, last_online, online, ip_last, ip_reg, home_room, newbie_status, is_muted, mutant_penalty, mutant_penalty_expire, trade_lock, trade_lock_expire, block_newfriends, hide_online, hide_inroom, vip, vip_expire, birth, talent_status, mysterybox_key_colour, last_name_change, client_volume, nux_passed, seckey, voted, vandeweek, home_txt, donateur, stemmen, waarschuwing)
VALUES('#countUsers.recordcount+1#', '#form.username#', 'Donny', '#password#', 'GRANDCMS-', 1', '0', '500000', '500000', '#dateAdd("s", 1351894331, createDateTime(1970, 1, 1, 0, 0, 0))#', '20', '1', 'hr-165-45.hd-208-2.ch-250-64.lg-285-82.sh-290-64', 'M', 'Nieuw op GrandHotel!', '#form.mail#', '#dateAdd("s", 1351894331, createDateTime(1970, 1, 1, 0, 0, 0))#', '#dateAdd("s", 1351894331, createDateTime(1970, 1, 1, 0, 0, 0))#', '0', '#CGI.REMOTE_ADDR#', '#CGI.REMOTE_ADDR#', '0', '0',  '0', '0', '#dateAdd("s", 1351894331, createDateTime(1970, 1, 1, 0, 0, 0))#', '0', '#dateAdd("s", 1351894331, createDateTime(1970, 1, 1, 0, 0, 0))#', '0', '0', '0', '0', '#dateAdd("s", 1351894331, createDateTime(1970, 1, 1, 0, 0, 0))#', '24-12-1995', '0', '0', '#dateAdd("s", 1351894331, createDateTime(1970, 1, 1, 0, 0, 0))#', '100', '0', '0', '1', '0', 'geenhometxt', '0', '0', '0');
</cfquery>

插入到用户中(id、用户名、真实姓名、密码、身份证、排名、vip积分、信用、活动积分、活动积分、最新更新、季节性货币、忠诚积分、外观、性别、座右铭、邮件、创建的账户、最后在线、在线、最后一次、最后一次、最后一次、注册、家庭会议室、新手状态、静音、变种罚款、变种罚款到期、交易锁定、交易锁定到期、阻止)_新朋友、隐藏在线、隐藏在房间、vip、vip过期、出生、人才状况、mysterybox密钥、颜色、姓氏更改、客户数量、nux通过、seckey、投票、vandeweek、主页txt、donateur、stemmen、waarschuwing)
“这些形式的形式.用户名,”唐尼“,,,“他们的身份,”,”,”唐尼“,,,“他们的身份,”他们的身份.密码,”他们的身份,,“他们的身份,”他们的身份,”他们的数值(ţ倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒倒,“数字用户的数字用户.数字用户的数字用户们们们..数字用户们.数字用户们..数字用户们...数字用户.数字.数字.记录.记录.记录.记录.记录.记录.记录.记录.记录.记录.数字.记录.记录.记录.记录.记录.记录.记录.记录.记录.记录.数字.记录.数字.记录.数字.记录.数字.记录.记录.数字.数字.数字.记录.数字.数字.数字.数字.数字.数字.数字.数字.数字.数字.数字4331,createDateTime“s”,1351894331,创造日期时间(1970年,1,1,1,1,1,1,1,0,0,0,0,0 0 0)的制造日期时间(1970年,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0)、0、0、0、0、0、0、dateAdd(“s”,1351894331,createDateTime(1970,1,1,0,0,0))#','24-12-1995','0','0','0','dateAdd(“s”,1351894331,createDateTime(1970,1,1,0,0,0))#','100','0','0','1','0','geenhometxt','0','0','0';
我数了一下专栏,都一样,所以这不是问题。有人知道我做错了什么吗


很抱歉我的英语不好。我来自荷兰!

更改
1'
,缺少了一些东西!

好吧,这解决了一个问题。现在我又遇到了另一个问题;S,我看到脚本说查询中有一个}。但是显然没有o-Oyour dateadd()正在创建一个类似于
{ts'2010-06-01 00:00}的日期时间
这破坏了您的sql语句。您应该使用
CFQUERYPARAM
s@Donny这是一个完全独立的问题,应该这样问。抱歉,这是本网站的工作原理,每个问题一个主题。DateTime对象不需要在它们周围。不相关但很重要的是,您应该在所有查询。CFQueryParam的优点在于它根据数据类型为您进行引用。@DonnySchr-正如da_didi所说,错误的原因是将日期对象用单引号括起来。但是,该查询易受sql注入的影响。为了保护数据库,应在所有变量查询参数上使用e error将日期对象包装为单引号为了澄清,CF会自动转义查询变量中的单引号,作为防止sql注入的最后一道防线。由于日期对象的字符串表示形式包含单引号,如@da_didi所示,CF将转义引号,从而导致您看到的语法错误。Whil删除外部引号可以解决错误,更好的解决方案是使用cfqueryparam。它不仅可以更好地防止sql注入,还可以通过绑定变量帮助提高性能。
countUsers。recordcount+1
不是很安全。不应该插入不可信的完整表单值。应该使用cfqueryparams。我希望如此您没有另一个名为
insertFemale
:)的查询此外,您插入的很多内容似乎都是平面值。MySQL可以自行插入许多默认值,您的查询不需要如此庞大且难以处理。
countUsers。recordcount+1不是用户提供的。它由CF服务器生成。但是,将其用于“ID”(这意味着唯一密钥)是一个错误的选择,因为它不是线程安全的。如果多个线程同时执行该代码,它们都将生成相同的
id
。如果需要自动递增的id,请不要重新启动控制盘。该功能已内置于MySQL中: