提前感谢您回答这个问题,这是我代码的一部分,不起作用。
$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个小时。。。。
将单引号替换为反引号:
$sql_insert = "INSERT INTO `users`
这应该可以解决问题。
尽可能使用回溯标记。它将帮助您防止保留关键字之间的冲突(例如password
)。
重要提示:当前表单中的查询容易受到SQL注入的攻击。考虑使用mysql_real_escape_string()
转义输入,或者更好的做法是切换到使用PDO
或mysqli
。
这是一个SQL字符串文字:
'users'
这是一个表名:
users
这是一个(MySQL)引用的表名:
`users`
SQL标准需要"users"
,而各种Microsoft数据库需要[users]
。
您不能将INSERT插入字符串,甚至不能考虑它。您的SQL应该更像这样:
$sql_insert = "INSERT INTO `users` ...
尝试用替换"用户"
`user`
MySql无法识别常见的
我将"users"更改为users
加上倒数第二个字段$data[cf]
传递字母数字(tsssss6i819s
),但只分配数字。将其更改为,'$data[cf]'
。也许还可以检查字段azienda
和piva
。