展开全部
我这里有个很好的通用数据62616964757a686964616fe78988e69d8331333262363066库连接类,我就喜欢用这个,试试看.
class DB_Handle{
var $ClassName = "DB_Handle";
var $Server;
var $UserName;
var $Password;
var $Database;
var $LinkID=0;
var $QueryResult="";
var $LastInsertID = "";
/* private ignore=>ignore the error and continue, halt=>report the error and halt, report=>report the error and continue */
var $Halt_On_Error = "report";
var $Error = "";
var $ErrNo = 0;
/**public
* remark: This is the db_mysql_class's structure
* function: Set the server,username,password,database variable.
*/
function DB_Handle($server="",$username="",$password="",$database=""){
$this->Server = $server;
$this->UserName = $username;
$this->Password = $password;
$this->Database = $database;
}
/**public
* function: Connect database and select database
* success: retun 1
* failed: return 0
*/
function connect(){
$this->LinkID = mysql_connect($this->Server,$this->UserName,$this->Password);
if(!$this->LinkID){
$this->halt("mysql_connect($this->Server,$this->UserName,$this->Password): Failed");
return 0;
}
if(!@mysql_select_db($this->Database)){
$this->halt("mysql_select_db($this->Database) Failed.");
return 0;
}
mysql_query("SET NAMES UTF8");
return 1;
}
/**public
* function: Check the database, if exist then select
* exist: return 1
* not exist: return 0
*/
function selectDatabase(){
if(@mysql_select_db($this->Database))
return 1;
else
return 0;
}
/**public
* function: Execute SQL instruction
* success: return SQL Result.
* failed: return 0;
*/
function execQuery($sql=""){
if($this->LinkID == 0){
$this->halt("Execute SQL Failed: Hava not valid database connect.");
return 0;
}
ob_start();
$this->QueryResult = mysql_query($sql,$this->LinkID);
$error = ob_get_contents();
ob_end_clean();
if($error){
$this->halt("Execute SQL: mysql_query($sql,$this->LinkID) failed.");
return 0;
}
$reg = "#insert into#";
if(preg_match($reg,$sql)){
$sql = "select @@IDENTITY as id";
$res = mysql_query($sql,$this->LinkID);
$this->LastInsertID = mysql_result($res,0,id);
}
return $this->QueryResult;
}
/** public
* function :Get one query result .
* success:return result
* failed: return 0
*/
function getAresult($sql=""){
ob_start();
$this->QueryResult = mysql_query($sql,$this->LinkID);
$error = ob_get_contents();
ob_end_clean();
if($error){
$this->halt("Halt_On_Error! ");
return "Halt_On_Error! ";
}
$row = @mysql_num_rows($this->QueryResult);
if($row==0){
return "没有记录";
}
$rs= @mysql_fetch_row($thi->QueryResult);
echo $rs[0];
}
/**public
* function: Get the query result's row number
* success: return the row fo the Result
* failed: return 0
*/
function getTotalRowNum($result=""){
if($result != "") $this->QueryResult = $result;
$row = @mysql_num_rows($this->QueryResult);
if($row >= 0) return $row;
$this->halt("Get a row of result Failed: Result $result is invalid.");
return 0;
}
/**public
* function: Get the last insert record's id
* success: return id
* failed: return 0
*/
function lastInsertID(){
return $this->LastInsertID;
}
/**public
* function: Get a field's value
* success: return value of the field
* failed: return 0
*/
function getField($result="",$row=0,$field=0){
if($result != "") $this->QueryResult = $result;
$fieldvalue = @mysql_result($this->QueryResult,$row,$field);
if($fieldvalue != "") return $fieldvalue;
$this->halt("Get field: mysql_result($this->QueryResult,$row,$field) failed.");
return 0;
//Here should have error handle
}
/**public
* function: Get next record
* success: return a array of the record's value
* failed: return 0
*/
function nextRecord($result=""){
if($result != "") $this->QueryResult = $result;
$record = @mysql_fetch_array($this->QueryResult);
if(is_array($record)) return $record;
//$this->halt("Get the next record Failed: the Result $result is invalid.");
return 0;
}
/**public
* function: Free the Query Result
* success return 1
* failed: return 0
*/
function freeResult($result=""){
if($result != "") $this->QueryResult = $result;
return @mysql_free_result($this->QueryResult);
}
/**public
* function: Set the Halt_On_Error's state
* success: return 1
* failed: return 0
*/
function setHaltOnError($state="ignore"){
if(!($state == "ignore" || $state == "report" || $state == "halt")){
$this->halt("Set the Halt_On_Error Fail: There is no state value $state");
return 0;
}
$this->Halt_On_Error = $state;
return 1;
}
/**public
* function: Get the Halt_On_Error's state
*/
function getHaltOnError(){
return $this->Halt_On_Error;
}
/**public
* function: Get the class's name
*/
function toString(){
return $this->ClassName;
}
/**private
* function: Error handle
*/
function halt($msg){
$this->Error = @mysql_error($this->LinkID);
$this->ErrNo = @mysql_errno($this->LinkID);
if ($this->Halt_On_Error == "ignore") return;
$this->makeMsg($msg);
if ($this->Halt_On_Error == "halt") die("Session halted");
}
/**private
* function: Make error information and print
*/
function makeMsg($msg){
printf("Database error: %s\n", $msg);
printf("mysql Error: %s (%s)\n",$this->ErrNo,$this->Error);
}
}
//链接数据库
$db=new DB_Handle("localhost","root","root","Database");
$db->connect();
?>
已赞过
已踩过<
你对这个回答的评价是?
评论
收起