【问题标题】:Syntax error:MySQL Insert Select语法错误:MySQL 插入选择
【发布时间】: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


【解决方案1】:

最后两个字段中可能有一些纯文本,所以可能有引号,最好将addslashes() 用于您的$question$answer 变量

'$email', '".addslashes($question)."', '".addslashes($answer)."' FROM tbl_user

【讨论】:

    最近更新 更多