Php SQL语法错误,找不到原因
提前感谢您回答这个问题,这是我代码的一部分,它不起作用Php SQL语法错误,找不到原因,php,mysql,sql,Php,Mysql,Sql,提前感谢您回答这个问题,这是我代码的一部分,它不起作用 $sql_insert = "INSERT INTO 'users' ( `ragionesociale`, `user_name`, `user_email`, `pwd`, `nome`, `cognome`, `tel`, `tel2`, `website`, `date`, `users_ip`, `activation_code`, `piva`, `cf`, `azienda`) VALUES
$sql_insert = "INSERT INTO 'users'
(
`ragionesociale`,
`user_name`,
`user_email`,
`pwd`,
`nome`,
`cognome`,
`tel`,
`tel2`,
`website`,
`date`,
`users_ip`,
`activation_code`,
`piva`,
`cf`,
`azienda`)
VALUES
(
'$data[ragionesociale]',
'$data[user_name]',
'$user_email',
'$sha1pass',
'$data[nome]',
'$data[cognome]',
'$data[tel]',
'$data[tel2]',
'$data[website]' ,
now(),
'$user_ip',
'$activ_code',
$data[piva],$data[cf],
$data[azienda])";mysql_query($sql_insert) or die("Insertion Failed:<br>$sql_insert<br>" . mysql_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 ''users'
(`ragionesociale`, `user_name`, `user_email`, `pwd`, `nome`, `cogno' at line 1
我找不到这段代码中的错误,我浪费了2个小时….这是一个SQL字符串文字:
'users'
这是一个表名:
users
`users`
这是一个(MySQL)带引号的表名:
users
`users`
SQL标准需要“用户”
,各种Microsoft数据库需要[用户]
你不能插入一个字符串,你甚至不能思考它。您的SQL应该更像这样:
$sql_insert = "INSERT INTO `users` ...
用反勾号替换单引号:
$sql_insert = "INSERT INTO `users`
这应该可以解决问题
尽可能使用反勾号。它将帮助您防止保留关键字之间的冲突(例如,password
)
重要提示:当前形式的查询易受SQL注入攻击。考虑使用“代码> MySQL LealSurvivEyStrug()/代码>来逃避输入,或者更好地切换到使用<代码> PDO 或<代码> MySqLI< /COD> < < /P>
尝试用“/P>替换‘用户’”
`user`
。MySql无法识别通常的我将把“用户”改为
用户
加上最后第二个字段$data[cf]
传递字母数字(TSSS6I819S
),但只分配数字。将其更改为,“$data[cf]”
。也可以检查字段azienda
和piva
对用户使用反勾号
而不是像对列那样使用单引号。