SQL 语法错误 - ' '', '', now())'

Error in SQL Syntax - ' '', '', now())'

我正在尝试向数据库中插入一行,但出现以下错误。

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 ' '', '', now())' at line 1.

如果我在 $gradeid 之外使用单引号,它将被转换为字符串,并且由于我的数据库列是整数并且它也是一个外键,即使这样也会失败并出现以下错误

Cannot add or update a child row: a foreign key constraint fails (`mydb`.`mytable1`, CONSTRAINT `activitygoalmaster_ibfk_1` FOREIGN KEY (`intGradeID`) REFERENCES `mytable2` (`intGradeID`))

我没有得到什么错误?可能是一些简单的错误,但我不明白。请帮忙。我在 php 中的代码是

  $title = $_POST['Title'];
  $gradeid = $_POST['GradeID'];
  $masterimgpath = $_POST['MasterImgPath'];
  $description = $_POST['Description'];

  $sql = "INSERT INTO activitygoalmaster(vchTitle, intGradeID, vchMasterImgPath, vchDescription, dtCreatedAt)VALUES('$title', $gradeid, '$masterimgpath', '$description', now())";
  $result = mysql_query($sql);

看起来 gradeid 是空的。尝试验证一下。

不要使用 mysql-* 函数,因为这已被弃用。将 mysqli_* 或 pdo 与准备好的语句一起使用。

请检查 table 结构及其值。

在执行之前打印你的 $sql。这样您就可以轻松找到错误。

我有一个问题: intGradeID 列是 int() 对吗?是 varchar() 吗?如果它是 varchar() 那么它确实需要在 insert 查询中使用单引号。

要解决 a foreign key constraint fails 的错误,请先将 mytable2 插入 grade id,然后再将其插入 mytable1。它显示此错误,因为 mytable1 上的 foreign key 需要它。