sql运行简单封装
作为一个QA,我本来是很少写代码的,不过这段代码用的次数比较多,每次用的时候都改一些,比较烦,所以整理了一个通用的,作为个人代码库的第一块石头吧
升级于2010-7-26,修复bug
class sql_runner{
private static $_arr_self = array();
private $_addr = false;
private $_user = false;
private $_passwd = false;
private $_db_connection = false;
static function get_instance($addr, $user, $passwd){
$key = $addr.'#'.$user.'#'.$passwd;
if(false === array_key_exists($key, self::$_arr_self)){
sql_runner::$_arr_self[$key] = new sql_runner($addr, $user, $passwd);
}
return sql_runner::$_arr_self[$key];
}
private function __construct($addr, $user, $passwd){
$this->_addr = $addr;
$this->_user = $user;
$this->_passwd = $passwd;
}
public function run_sql($sql){
if(false === $this->_db_connection || !mysql_ping($this->_db_connection)){
UB_LOG_DEBUG("connecting db $this->_addr, $this->_user");
$this->_db_connection = mysql_connect($this->_addr, $this->_user, $this->_passwd);
if(false === $this->_db_connection){
UB_LOG_FATAL("connect db failed: ".mysql_error());
return false;
}else{
mysql_set_charset('latin1', $this->_db_connection);
}
}
$result = false;
$result = mysql_query($sql, $this->_db_connection);
if(false === $result){
UB_LOG_FATAL("[$sql] execute failed:". mysql_error($this->_db_connection)."\n");
return false;
}
$result_arr = array();
if(is_resource($result)){
while($row = mysql_fetch_assoc($result)){
$result_arr[] = $row;
}
mysql_free_result($result);
}
UB_LOG_DEBUG("[$sql] execute succed, selected result:".print_r($result_arr, true));
return $result_arr;
}
}
/**for log functions*/
if(!function_exists('UB_LOG_DEBUG')){
function UB_LOG_DEBUG($log){
print($log);
}
}
if(!function_exists('UB_LOG_FATAL')){
function UB_LOG_FATAL($log){
print($log);
}
}
您可能会喜欢:
博主威武!佩服下