和大家分享一下:::
首先,
public static function getAll($sql=null){
if($sql!=null){
self::query($sql);
}
$result=self::$PDOStatement->fetchAll(constant("PDO::FETCH_ASSOC"));
return($result);
}
因?yàn)樵趒uery()中已經(jīng)做了容錯(cuò)處理,那么這里沒必要做判斷,說(shuō)$sql是否為空,就應(yīng)該直接執(zhí)行。
其次,
public static function haveErrorThrowException(){
//首先要得到PDOStatement對(duì)象
$obj=empty(self::$PDOStatement)?self::$link: self::$PDOStatement;
$arrError=$obj->errorInfo();
//print_r($arrError);
if(self::$queryStr==""){
//如果要執(zhí)行的SQL語(yǔ)句為空
self::throw_exception("沒有要執(zhí)行的SQL語(yǔ)句!");
return false;
}
if($arrError[0]!="000000"){
//正確的時(shí)候,數(shù)組$arrError的第一項(xiàng)的鍵值是“00000”
self::$error="SQL LSTATE: ".$arrError[0]."<br />SQL ERROR: ".$arrError[2]."<br />ERROR SQL: ".self::$queryStr;
//如果產(chǎn)生了錯(cuò)誤,我們就要拋出異常
self::throw_exception(self::$error);
return false;
}
}
在haveErrorThrowException()這個(gè)方法中,應(yīng)先判斷是否為空,再判斷是否錯(cuò)誤信息的第一位鍵值是否為“00000”。否則會(huì)出現(xiàn),當(dāng)$sql為空時(shí),提示不到“沒有可以執(zhí)行的SQL語(yǔ)句”
2020-06-24
???999
2017-07-24
666