【发布时间】:2012-05-26 08:17:59
【问题描述】:
所以,我正在创建一个密码更改表
当一些 1 更改通过时,我在 PassChange 表中插入他的用户名、newpass 和确认码,(所以我之后给他发送一封确认电子邮件)这个想法很简单,这是我使用的代码
$insertResult=mysql_query("INSERT INTO TempChangePass (UserName, NewPass, ConfirmationCode) VALUES ('$UserName', '$newPass', '$code')") or die (mysql_error());
虽然我得到了这个错误: 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“用户名”、“4da59df8d4007807e7230e0881fbf774”、“16585482”)附近使用正确的语法
注意:表中所有列的格式都设置为varchar。
mysql数据库连接正常,表名正确。
这个问题快把我逼疯了,我就是不知道问题出在哪里,如果有人能帮助我,将非常感激:)
提前致谢。
编辑: 我实际上已经解决了,仅针对通过搜索解决方案访问此帖子的人,如果您的 sql 命令遇到类似问题,请尝试回显它,并查看字符串是如何移动到数据库的 :-),快乐编码大家。
对不起,如果我浪费了你的任何时间 :) 我对 php 和 mysql 很陌生 :D
【问题讨论】:
-
您的用户名变量中是否有
'?print_r($UserName)。然后,去见Bobby tables,然后阅读prepared statements -
尝试(暂时)更改您的代码,以便您首先组装查询,然后转储整个查询,以便您查看发生了什么。即
$q = "INSERT INTO TempChangePass (UserName, NewPass, ConfirmationCode) VALUES ('$UserName', '$newPass', '$code')";然后var_dump( $q )这样您就可以看到您正在生成的确切查询。这应该让你看到问题出在哪里。