2012-10-14 32 views
0

我今天的問題是,我試圖在我的數據庫中插入一條新行後返回一個id。PDO發現新的ID錯誤

$sql = ('INSERT INTO `tSections`(`sSection`, `pCity_id`) VALUES (:sSection, :pCity_id) RETURNING pSection_id'); 
$new_section = $DBH->prepare($sql); 

沒有返回pSection_id它工作正常。任何想法或解決方案。我假設我只是忘記了一件簡單的事情。

希望能儘快聽到你們的消息。

這是它給

未捕獲的異常「PDOException」有消息「SQLSTATE錯誤[42000]:語法錯誤或訪問衝突:1064您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用附近

回答

5

第1' 行「返回pJob_Type_id」在MySQL中有沒有這樣的事情RETURNING手冊。

您正在尋找PDO::lastInsertID()

+0

對不起,當我讀到我認爲是一種解決方案時,我讀得很快。 「我認爲我在Postgres中得到了一個很好的解決方案,可以使用Postgress自8.2版以來的RETURNING來獲取ID,在下面的示例中,我將插入子句與我的表的主鍵一起添加到了」返回「在執行之後,我做了一個獲取最後一個插入ID值的數組。 <?php public function insert($ employee){ $ sqlQuery =「INSERT INTO employee(user_id,name,address,城市)VALUES(:user_id,:name,:address,:city)RETURNING employee_id「;」 – Tolure