Heim >php教程 >php手册 >操作MYSQL的一个PHP类

操作MYSQL的一个PHP类

WBOY
WBOYOriginal
2016-06-21 09:02:31765Durchsuche

 

php
/*
*
这个类本来是PHPLIB里的一部分,我做了些修改。
*/
class MyDB_Sql {
var $Host = "";
var $Database = "";
var $User = "";
var $Password = "";

var $Link_ID = 0;
var $Query_ID = 0;
var $Record = array();
var $Row;

var $Errno = 0;
var $Error = "";

var $Auto_free = 0; ## Set this to 1 for automatic mysql_free_result()
var $Auto_commit = 0; ## set this to 1 to automatically commit results

var $debugmode = 0;

function connect() {
if ( 0 == $this->Link_ID ) {
$this->Link_ID=mysql_pconnect($this->Host, $this->User, $this->Password);
if (!$this->Link_ID) {
$this->halt("Link-ID == false, pconnect failed");
}
if (!mysql_query(sprintf("use %s",$this->Database),$this->Link_ID)) {
$this->halt("cannot use database ".$this->Database);
}
}
}

function query($Query_String) {
$this->connect();

if ($this->debugmode)
printf("Debug: query = %sbr
>\n", $Query_String);

$this->Query_ID = mysql_query($Query_String,$this->Link_ID);
$this->Row = 0;
$this->Errno = mysql_errno();
$this->Error = mysql_error();
if (!$this->Query_ID) {
$this->halt("Invalid SQL: ".$Query_String);
}

return $this->Query_ID;
}

function next_record() {
$this->Record = mysql_fetch_array($this->Query_ID);
$this->Row += 1;
$this->Errno = mysql_errno();
$this->Error = mysql_error();

$stat = is_array($this->Record);
if (!$stat && $this->Auto_free) {
mysql_free_result($this->Query_ID);
$this->Query_ID = 0;
}
return $stat;
}

function seek($pos) {
$status = mysql_data_seek($this->Query_ID, $pos);
if ($status)
$this->Row = $pos;
return;
}

function metadata($table) {
$count = 0;
$id = 0;
$res = array();

$this->connect();
$id = @mysql_list_fields($this->Database, $table);
if ($id $this->Errno = mysql_errno();
$this->Error = mysql_error();
$this->halt("Metadata query failed.");
}
$count = mysql_num_fields($id);

for ($i=0; $ii++) {
$res[$i]["table"] = mysql_field_table ($id, $i);
$res[$i]["name"] = mysql_field_name ($id, $i);
$res[$i]["type"] = mysql_field_type ($id, $i);
$res[$i]["len"] = mysql_field_len ($id, $i);
$res[$i]["flags"] = mysql_field_flags ($id, $i);
$res["meta"][$res[$i]["name"]] = $i;
$res["num_fields"]= $count;
}

mysql_free_result($id);
return $res;
}

function affected_rows() {
return mysql_affected_rows($this->Link_ID);
}

function num_rows() {
return mysql_num_rows($this->Query_ID);
}

function num_fields() {
return mysql_num_fields($this->Query_ID);
}

function nf() {
return $this->num_rows();
}

function np() {
print $this->num_rows();
}

function f($Name) {
return $this->Record[$Name];
}

function p($Name) {
print $this->Record[$Name];
}

function halt($msg) {
printf("tr>Database error: %sbr
>\n", $msg);
printf("MySQL Error: %s (%s)br>\n",
$this->Errno,
$this->Error);
die("Session halted.");
}
}

class SQL extends MyDB_Sql {
var $Host = "localhost";
var $Database = "";
var $User = "";
var $Password = "";

function free_result() {
return @mysql_free_result($this->Query_ID);
}

function rollback() {
return 1;
}

function commit() {
return 1;
}

function autocommit($onezero) {
return 1;
}

function insert_id($col="",$tbl="",$qual="") {
return mysql_insert_id($this->Query_ID);
}
}
?>

 



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn