2013-05-21 179 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不是必需的或類似的東西。