class kDbConnection { var $error_level = 0; var $error_die_conn = false; var $error_last_code = -1; var $db_host = "10.0.3.1"; var $db_user = "mvlsz_dev"; var $db_pass = "gdhnYJA8"; var $db_name = "mvlsz_dev"; var $conn = false; var $last_query = false; var $last_trhead = false; function kDbConnection($db="", $host="", $user="", $pass="" ){ if( $db != "" ){ $db_name = $db; } if( $host != "" ){ $db_host = $host; } if( $user != "" ){ $db_user = $user; $db_pass = $pass; } } function doConnect($db="", $host="", $user="", $pass=""){ getConn($db, $host, $user, $pass); } function connect(){ if($conn){ select_db( $db ); } } function _connect( $db="", $host="", $user="", $pass="" ){ if( $host == "" ){ $host = $db_host; } if( $user == "" ){ $user = $db_user; $pass = $db_pass; } if( $db == "" ){ $db = $db_name; } $conn = @mysql_connect($host,$user,$pass) or error(0,$host,$user); $db_host = $host; $db_user = $user; $db_pass = $pass; if( $conn ){ $select_db( $db ); } } function select_db( $dbName ){ @mysql_select_db( $dbName,getConn() ) or error(1,$dbName); $db_name = $dbName; $GLOBALS["kConn"] =& getConn(); } function getConn(){ if( @get_resource_type($conn) != "mysql link" ){ _connect(); } return $conn; } function query( $sql ){ if( !($conn = getConn()) ){ return false; } select_db( $db_name ); $last_query = $sql; $result = @mysql_query($sql, $conn ) or error(2,$sql); $last_trhead = $result; return $result; } function unbuffered_query( $sql ){ if( !($conn = getConn()) ){ return false; } $last_query = $sql; $result = @mysql_unbuffered_query($sql, $conn ) or error(2,$sql); $last_trhead = $result; return $result; } function fetch( $thread = "use_last_res", $resType = "num" ){ if( !($conn = getConn()) ){ return false; } if( $last_query === false ){ return false; } if( $thread == "use_last_res" ){ $thread = $last_trhead; } if( @get_resource_type($thread) != "mysql result" ){ error(3,"fetch"); } $resType = strToLOwer($resType); switch( $resType ){ case "assoc": $row = @mysql_fetch_array( $thread, MYSQL_ASSOC ); break; case "both": $row = @mysql_fetch_array( $thread, MYSQL_BOTH ); break; default: $row = @mysql_fetch_array( $thread, MYSQL_NUM ); break; } return $row; } function assoc( $thread = "use_last_res" ){ if( !($conn = getConn()) ){ return false; } if( $last_query === false ){ return false; } if( $thread == "use_last_res" ){ $thread = $last_trhead; } if( @get_resource_type($thread) != "mysql result" ){ error(4,"assoc"); } $row = @mysql_fetch_assoc( $thread ); return $row; } function num( $thread = "use_last_res" ){ if( !($conn = getConn()) ){ return false; } if( $last_query === false ){ return false; } if( $thread == "use_last_res" ){ $thread = $last_trhead; } if( @get_resource_type($thread) != "mysql result" ){ error(5,"num"); } $num = @mysql_num_rows( $thread ); return $num; } function getNextId( $table ){ if( getConn() == false ){ return false; } $sql = "SHOW TABLE STATUS LIKE '$table' "; $res = query($sql); $row = assoc($res); $nextID = $row["Auto_increment"]; return $nextID; } function setDebugLevel($level){ $error_level = $level; } function error(){ $code = func_get_arg(0); if( $code == $error_last_code ){ return false; } $params = func_get_args(); switch( $code ){ case 0: $msg = "[Can't connect to ".$params[2]."@".$params[1]." !]"; $die = $error_die_conn; $conn = false; break; case 1: $msg = "[Can't select db ".$params[1]." !]"; $die = false; $conn = false; break; case 2: $msg = "[Wrong query: ".$params[1]." !]"; $die = false; $conn = false; $last_query = false; break; case 3: break; case 4: break; case 5: break; $msg = "[Missing thread resource! (".$params[1].")]"; $die = false; $conn = false; break; } $errorStr = "DB_ERROR (".$code.") "; switch( $error_level ){ case 1: echo $errorStr; break; case 2: echo $errorStr." - ".$msg." "; break; default: break; } if( $die){ die(); } $error_last_code = $code; } function startLockTables( $tablesStr ){ $tables = explode(",",$tablesStr ); $sqlTables = ""; foreach( $tables as $table ) { if( $sqlTables != "" ){ $sqlTables .= ", "; } $sqlTables .= $table." WRITE "; } query("LOCK TABLES ".$sqlTables); } function endLockTables(){ query("UNLOCK TABLES"); } function getSingleFieldValue( $tbl, $field, $where ){ $return = false; $sql = "SELECT $field FROM $tbl WHERE $where LIMIT 0,1"; $res = query($sql); if(num($res)!=0){ $row = fetch($res,"num"); $return = $row[0]; } return $return; } function getRecord( $tbl, $field, $where){ return getSingleFieldValue($tbl, $field, $where); } function getSingleRow( $tbl, $fields="", $where, $resType = "assoc" ){ $return = false; if( $fields == "" ){ $fields = "*"; } $sql = "SELECT $fields FROM $tbl WHERE $where LIMIT 0,1"; $res = query($sql); if( num($res) != 0 ) { $return = fetch($res, $resType); } return $return; } function getRow($tbl, $fields="", $where, $resType = "assoc"){ return getSingleRow($tbl, $fields="", $where, $resType); } function getSingleRowSql( $sql, $resType = "assoc" ){ $return = false; $sql = $sql." LIMIT 0,1"; $res = query($sql); if( num($res) != 0 ) { $return = fetch($res, $resType); } return $return; } function getRowSql( $sql, $resType = "assoc" ){ return getSingleRowSql($sql, $resType); } function sqlUpdate( $tbl, $set, $where ){ return query("UPDATE $tbl SET $set WHERE $where"); } function getDataSet($sql,$resType="assoc"){ $dataSet["sql"]=$sql; $dataSet["recordCount"]=0; dataSet["rows"]=array(); $res = query($sql); $dataSet["recordCount"] = num($res); if( $dataSet["recordCount"] != 0 ){ while($row = fetch($res,$resType)){ $dataSet["rows"][] = $row; } } return $dataSet; } } ?>
|
|