谢谢你提前回答这个问题,这是我的代码的一部分,它不起作用。
$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());
这是给定的结果:
INSERT INTO 'users' (
`ragionesociale`,
`user_name`,
`user_email`,
`pwd`,
`nome`,
`cognome`,
`tel`,
`tel2`,
`website`,
`date`,
`users_ip`,
`activation_code`,
`piva`,
`cf`,
`azienda`
)
VALUES (
'La Fabbrica dei Giochi',
'uuuuuuu',
'sssss@gmail.com',
'e258c8aac30eba143e1f3sssss6dc1cdc4d58ff1095',
'pietro',
'rossi',
'234234234',
'345.4346865',
'www.ssss.it' ,
now(),
'212.124.171.131',
'9962',
2323232,
tsssss6i819s,
1 )
错误讯息:
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个小时......
答案 0 :(得分:2)
用反引号替换单引号:
$sql_insert = "INSERT INTO `users`
这应解决问题。
尽可能使用反引号。它可以帮助您防止保留关键字之间发生冲突(例如password
)。
重要提示:您的查询当前表单容易受到SQL注入攻击。考虑使用mysql_real_escape_string()
转义输入,甚至更好,切换到使用PDO
或mysqli
。
答案 1 :(得分:1)
这是一个SQL字符串文字:
'users'
这是一个表名:
users
这是(MySQL)引用的表名:
`users`
SQL标准需要"users"
,各种Microsoft数据库需要[users]
。
你不能插入一个字符串,你甚至无法想到它。您的SQL看起来应该更像这样:
$sql_insert = "INSERT INTO `users` ...
答案 2 :(得分:0)
尝试替换&#39;用户&#39;与
`user`
。 MySql不识别通常的
答案 3 :(得分:0)
我会将'用户'更改为users
加上第二个最后一个字段$data[cf]
传递字母数字(tsssss6i819s
)但仅指定数字。将其更改为,'$data[cf]'
。也许请查看字段azienda
和piva
。