【发布时间】:2025-12-03 08:45:02
【问题描述】:
我有这个查询要插入到 tbl_userprofile:
$SQL = "INSERT INTO tbl_userprofile (userId, name, surname, gender, nationality, address, mobile, department, email, question, answer)
SELECT tbl_user.Id , '$name', '$surname', '$gender', '$nationality', '$address','$mobile', '$department', '$email', '$question', '$answer'
FROM tbl_user
WHERE username = '$uname'";
我收到一个语法错误:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'pet-peeve', 'dirt' FROM tbl_user 附近使用的正确语法WHERE username = 'alex'' 在第 2 行"
注意:问题和答案是讨厌和污垢。 我不知道我是如何得到语法错误的。请问我的语法错误在哪里?谢谢
【问题讨论】:
-
尝试使用显式值对您的插入语句进行编码以进行测试并从 mysql 查询客户端运行它。
-
我看不到您的语法有任何错误,除了该语句易受 sql 注入攻击。您能否在对数据库执行查询之前回显您的查询?
-
最后两个字段中可能有一些纯文本,所以可能有引号,最好将addslashes() 用于您的
$question和$answer变量 -
我认为问题在于 $email 字段,因为 $question 和 $answer 看起来都不错,但是是的,除此之外,这里的所有内容。
-
@Fabio 没错。在变量上使用了 addlashes() 后它起作用了。谢谢
标签: php mysql insert insert-select