我遇到了问题...由于某些原因,我的MySQL查询无法执行。
查询:
$sql = mysql_query("INSERT INTO `users` (`username`,`password`,`first_name`,`last_name`,`email`,`rank`,`active`) VALUES (`$username`,`$encryptedPassword`,`$first_name`,`$last_name`,`$email`,`member`,`0`)");
我不知道为什么它不起作用:(没有一个值是null
而且我没有收到任何错误。
答案 0 :(得分:4)
您正在为VALUES使用反引号
(`$username`,`$encryptedPassword`,`$first_name`,`$last_name`,`$email`,`member`,`0`)
用单引号替换它们。
('$username','$encryptedPassword','$first_name','$last_name','$email','member','0')
使用or die(mysql_error())
到mysql_query()
会发出错误信号。
旁注:
考虑使用mysqli
with prepared statements或PDO with prepared statements
以防万一:
将error reporting添加到文件的顶部,这将有助于在生产测试期间。
error_reporting(E_ALL);
ini_set('display_errors', 1);
洞察 (此处已提及,但已将其删除并重新添加)
我注意到你正在为大多数值使用变量。如果是这种情况,请确保您要输入单词member
而不是$member
及其匹配值。我之前见过它(只是检查)。
使用错误检查/报告将告诉您是否有任何未定义的变量以及mysql_error()
。
答案 1 :(得分:1)
使用通常的',而不是`来引用值。
答案 2 :(得分:1)
SQL中的字符串文字用单引号('
)表示。反引号保留用于标识符(列,表等):
$sql = mysql_query("INSERT INTO `users` (`username`,`password`,`first_name`,`last_name`,`email`,`rank`,`active`) VALUES ('$username','$encryptedPassword','$first_name','$last_name','$email','member',0)");