2012-02-12 46 views
3

我對PHP中的預處理語句有個疑問。我以前使用mysql_query函數來操作數據庫數據,但被告知,對於安全問題,我應該考慮使用預準備語句。我已經完成了轉換,但是我有幾個關於如何檢測查詢是否失敗的問題。在準備好的語句中檢測錯誤

下面我有一段示例代碼。 $ con變量是一個特定的連接,具體取決於我嘗試的查詢,在這種情況下,連接將通過僅具有選擇權限的帳戶連接到我的數據庫。

$stmt = $con->stmt_init(); 
$stmt->prepare("SELECT COUNT(*) FROM users WHERE username=?"); 
$stmt->bind_param('s', $username); 
$stmt->execute(); 
$stmt->bind_result($user_count); 
$stmt->fetch(); 
$stmt->close(); 

我想知道如何在這些步驟中檢測到故障?我可以想象的最簡單的解決方案就是簡單地使用try/catch來包裝代碼..但我想知道是否有更復雜的方法來做到這一點。

感謝您閱讀我的問題。

+0

http://www.php.net/manual/en/pdo.error-handling.php – 2012-02-12 02:07:52

回答

1

要擴大Jared的評論,你可以做到以下幾點:

$stmt->execute(); 
if(!$stmt->errorCode()){ 
    // do something with results 
}else{ 
    // do something with the error 
} 
$stmt->close(); 
+0

'empty'不起作用在函數調用。你想'!$ stmt-> errorCode()'? – deceze 2012-02-12 02:17:46

+0

@deceze Oopsies,是的。謝謝。 – Farray 2012-02-12 02:27:51