2013-05-21 58 views
1

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

此外,我一直试图使用Model-> query()方法,但我不能让它正确地检查错误。我希望它插入,但如果ID已被占用,则返回错误消息,所以我试过了。

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

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

+2

a)您阅读过什么cakephp版本的文档和教程?这并不是人人会怎么做的。尝试使用包装方法记录 - 在你的情况下保存()。 – mark

回答

0

你的表应该只有Id作为主键,它应该是IDENTITY。

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

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