2014-09-23 66 views
0
插入

剛開始接觸PDO沒有被使用PDO

I tried debugging my queries, but I receive no logfile

try{ 

$stmt = $db->prepare(
"INSERT INTO psc_history 
(version_stamp, psc_id,version_author , pscname) VALUES 

(:version_stamp, :tableprimkeyvalue, :version_author, :fieldvalue) 

ON DUPLICATE KEY UPDATE pscname = :fieldvalue2, version_author = :version_author2;"); 

      $stmt->execute(array(':version_stamp' => "2015-09-23 01:14:59" 
          , ':tableprimkeyvalue' => 5478 
           , ':version_author' => 9999 
            , ':fieldvalue' => "hello1" 
           , ':fieldvalue2' => "hello2" 
          , ":version_author2" => 9999)); 

     } catch (PDOException $ex) { 
     echo($ex->getMessage()); 
    } 

沒有被寫入表

version_stamp和psc_id是主鍵

我沒有得到任何錯誤既不。

我錯過了什麼?

編輯改變psc_id到一個新的值不存在時

:更改日期時間的值不存在時,一條記錄被插入

:記錄不會被插入

可能是我的數據庫設置有問題?

enter image description here

+0

添加'$ pdo->的setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);'在連接打開後。在打開'<?php'標記後立即將文件錯誤報告到文件頂部。error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否產生任何東西。 – 2014-09-23 00:20:36

+0

如果至少有一個值嘗試插入到UNIQUE列中,則整個查詢將失敗。嘗試'在重複密鑰更新'http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html - 加上,你是否包括錯誤報告如上所述?這應該會引發錯誤。 – 2014-09-23 00:31:41

+0

沒有錯誤,但我發現解決方案雖然(刪除唯一的索引限制) – Toskan 2014-09-23 07:08:40

回答

0

你不得不從列 刪除唯一約束在phpMyAdmin 結構 指標 編輯 更改唯一索引

enter image description here