2013-02-02 39 views
0

好吧,我很沮喪,我不知道這個問題是什麼。我覺得自己就像一個糟糕的程序員。我試圖更新我的數據庫,並且我知道我嘗試更新的表存在。從字面上我知道這個查詢是準確的,但我不知道爲什麼它不起作用。第一個mysql語句執行,但第二個不執行。這是我的代碼。PDO準備好的陳述不會執行

$Statement = $Database->prepare("INSERT INTO table1 (tbl2id, col, col2) VALUES (?, ?, ?); UPDATE table2 SET this = ? WHERE id = ?"); 
$Statement->execute(array($table2id, $col, $col2, 1, $table2id)); 

所以我試圖設置數據庫,所以他們是一種連接。順便提一下,我列出了所有的列名。我不知道它是否有助於安全,但我不喜歡公開發布這些內容。無論如何,默認情況下'this'列是0,如果它是1,這意味着用戶已經回覆。所以'this'被設置爲tinyint並且默認值爲0.

我不是故意問一個愚蠢的問題或任何東西,我討厭承認它,但我真的不明白它。也許有一些關於我不知道的PDO陳述。我也嘗試過兩次單獨執行,但它仍然不行。而且我知道有人會說我沒有更新正確的桌子或其他東西。但我發誓這是正確的,我已經檢查了至少10次。

非常感謝。我喜歡自己弄點東西,但我不能再浪費時間了。

+2

,如果你把它分成兩個查詢會發生什麼? –

+0

我這樣做了,它仍然不會執行,我讀了PDO :: ATTR_EMULATE_PREPARES,我知道它默認設置爲1,並且我沒有搞砸了,所以我不認爲這是問題 – Alex

+0

我意思是,顯然可能沒有足夠的信息從我的帖子中解決問題,並且我知道我發佈的代碼似乎沒有任何錯誤。我會一直試圖解決它,但我只是想確保沒有任何錯誤發生,這很明顯。就像我不知道的PDO,我正在強調。 – Alex

回答

0

那麼有一件事真的屬於你的編程技能。
程序員必須首先在尋找錯誤信息
而不是坐在一邊看代碼,程序員不得不問他們的程序發生了什麼事。
因此,它必須是您首要關心的問題 - 「我怎樣才能得到錯誤信息?」。
看,它本質上不同:不是「我的代碼出了什麼問題?」但是「如何得到一個錯誤?」。

您確定設置了ERRMODE_EXCEPTION,您可以看到發生的所有錯誤?難道你沒有一個愚蠢的異常處理程序與空catch()?你有沒有啓用display_errors(或你有檢查日誌)?
你可以看到一個故意的錯誤 - 像「blah foobar廢話」這樣的查詢會引發一個嗎?

如果沒有 - 處理錯誤報告問題。
如果是這樣 - 那麼是時候檢查一下你的程序流程邏輯和愚蠢的類錯誤(比如插入一個數據庫,同時檢查另一個等)。

是的,準備/執行不支持多個查詢,你必須讓他們在不同的呼叫

相關問題