2013-03-16 52 views
-1

我有一個處理頁面上有兩個刀片。第一部作品毫無困難。第二個甚至不會啓動。我甚至嘗試過放入PDO查詢來查看它是否可以工作,但仍然沒有任何結果。PDO多執行力的問題

 $cpinsert = $db->prepare('insert into Chatposts values (0, :chatid, :name, :url, :text, now(), :ipaddress, 0)'); 

     $cpinsert -> bindParam(':chatid', $chatroomid, PDO::PARAM_INT); 
     $cpinsert -> bindParam(':name', $name, PDO::PARAM_STR); 
     $cpinsert -> bindParam(':url', $url, PDO::PARAM_STR); 
     $cpinsert -> bindParam(':text', $text, PDO::PARAM_STR); 
     $cpinsert -> bindParam(':ipaddress', $ipaddress, PDO::PARAM_STR); 


      $cpinsert -> execute(); 

     // Needs an error checker 
     $cpid = $cpinsert ->lastInsertID(); 
     $cpinsert->closeCursor(); 

^這工作正常,但我不知道lastinsertid,因爲我無法測試它。

\在那裏將執行不管我怎麼努力V /無。有些東西阻止任何執行或我沒有正確關閉上述連接。

// Targets Insert 
    //if (isset($target)): 
    $query = "insert into Targets values (9,'rommel')"; 
    $db->query($query); 
     $targetinsert = $db->prepare('insert into Targets values (:cpid,:tname)'); 


     foreach ($target as $tname): 
      $targetinsert -> bindParam(':cpid', $cpid, PDO::PARAM_INT); 
      $targetinsert -> bindParam(':tname', $tname, PDO::PARAM_STR); 
     endforeach; 


      $targetinsert -> execute(); 

    //endif; 

我已經嘗試了我所知道的一切,沒有運氣。由於我是PDO新手,所以很可能犯了一個小錯誤。當我添加它時,Closecursor似乎沒有做任何事情。

+0

確保您的PDO配置爲[上錯誤拋出異常(http://us.php.net/manual/en/pdo.error-handling.php#example-978),所以你可以看到發生的事情錯誤。然後想想你在做什麼。你只是調用'execute'一次,所以*充其量*它將執行'INSERT INTO目標VALUES(..)'一次,將單行。 – DCoder 2013-03-16 08:12:18

+0

是的。問題是這是在一個處理頁面上,試圖以很多方式將你踢出去,看到錯誤本身就是一個挑戰。我希望這將是一個簡單的編碼錯誤,可以直觀地看到。是的,我知道執行問題,我正在進行測試,看看它是否在第一次運行,但沒有運行。 – Rujikin 2013-03-16 08:20:58

+1

所以問題是真的,你不知道如何調試你的代碼?安裝[xDebug](http://xdebug.org/index.php)並逐行瀏覽你的代碼。 – DCoder 2013-03-16 08:26:01

回答

0

你說你需要執行很多插入操作,但由於某種原因,你只是執行你的查詢一次

另外,請從您的代碼刪除這些在try..catch東西 - 他們是原因,你根本不知道發生了什麼事情錯

+0

我不能讓它執行甚至一度因此我會擔心重複一次,將提交一個查詢。我已經看到了很多關於stackoverflow的代碼,嘗試捕獲執行,有沒有更好的方法?還刪除了代碼中的try-catch塊,仍然沒有提交。 – Rujikin 2013-03-16 08:06:43

-2

我不得不重新我的網頁的一半功能模型,但我發現這個問題,它是lastinsertid()。我正在PDO類上應用PDO語句類。

前:

$cpid = $cpinsert->lastInsertID(); 

後:

$cpid = $db->lastInsertID(); 

我不得不調用數據庫,而不是與該行代碼的準備。