1

我无法使用 CakePHP 将数据插入 MySQL 表。我正在制作一个表格,一旦插入一行,它就不应该被覆盖。使用 CakePHP 的 save 方法,如果我尝试输入具有相同主键但信息不同的内容,它只会更新该条目而不是返回错误。我尝试取消设置模型的 id 并尝试在调用之前执行 Model->create() ,但它仍然只是覆盖数据。

此外,我一直在尝试改用 Model->query() 方法,但我无法让它正确检查错误。我希望它插入,但如果 ID 已被占用,则返回错误消息,所以我尝试了这个。

$insertQuery = ("INSERT INTO `students` VALUES ('{$id}', '{$lastname}', '{$firstname}', '')");
$this->Student->query($insertQuery) or die("error" .mysql_error());

但是,查询命令返回一个数组而不是一个真值,所以每次都会调用 die。我将不胜感激有人可以提供的任何建议。

4

1 回答 1

0

您的表应该只有 Id 作为主键,并且应该是 IDENTITY。

在 CakePHP 中,如果您没有在创建的表单中指定 Id 来提交数据,它将创建另一个记录,即使具有相同的值。

但是您应该修改您的模型以确保不需要 id 或类似的东西。

于 2013-05-21T16:41:21.960 回答