我對我的一些舊代碼進行了重構,並使用INSERT函數創建了一個數據庫類。爲了測試的目的,我把它留在了課堂之外,並且想讓它處理錯誤。使用mysqli處理錯誤
我想刪除php錯誤並返回自己的錯誤。目前,我有以下和正常工作與重複鍵插入,但是當我試從bind_param我收到以下錯誤刪除類型參數:
Warning: mysqli_stmt::bind_param(): Invalid type or no types specified in /home/matt500b/csgoberry/public/catch.php on line 17
Executing the statement failed: No data supplied for parameters in prepared statement
如何刪除警告問題,並保持只是我回來串?或者對於生產服務器,這種類型的操作的最佳方法是什麼。
還有什麼其他錯誤可以模擬關於mysqli查詢?
function INSERT($link, $sql, $args=null) {
if ($stmt = $link->prepare($sql)) {
for($i=0; $i<count($args); $i++) {
$stmt->bind_param($args[$i]["type"], $args[$i]["value"]);
}
if(!$stmt->execute()) {
return 'Executing the statement failed: ' . htmlspecialchars($stmt->error);
exit();
}
}
else {
return 'Preparing the statement failed: ' . htmlspecialchars($link->error);
exit();
}
return 'Finished';
}
$query = "INSERT INTO insertTest (`value`) VALUES (?)";
$queryArgs[] = array("type"=>"", "value"=>"test1");
echo INSERT($link, $query, $queryArgs);
'try catch'? http://stackoverflow.com/questions/17549584/how-to-efficiently-use-try-catch-blocks-in-php –
我模擬錯誤,以捕獲所有錯誤並正確顯示。我故意留下''type「=>」「'空。因此,投票不重複,因爲有關如何處理此類錯誤 – Matt
試圖嘗試/抓住周圍的執行問題,但我的自定義錯誤不顯示,只有PHP警告錯誤顯示 – Matt