我对我的一些旧代码进行了重构,并使用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