我在使用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());
但是,query命令返回一个数组而不是真值,因此每次都会调用die。我很感激有人可以提供任何建议。
答案 0 :(得分:0)
您的表应该只有Id作为主键,它应该是IDENTITY。
在CakePHP中如果你没有在你创建的表单中指定Id来提交你的数据,它将创建另一条记录,即使是相同的值。
但是你应该修改你的模型,以确保不需要id或类似的东西。