php中能用的数据库有mysql,msql,mssql,odbc,sybase,oracle等。不过,看了php的函数库后,你会发现只有用mysql。因为php对他的支持是最全面的,也是最细致的。反而,对大型数据库oracle的支持到不如他。因为php中可以用对象打包,所以,我希望大家把数据库封装成一个对象,以下是一个封装好的数据库对象,供大家参考:
<?php
class DB
{
var $Host = host; // Hostname of our MySQL server
var $Database = database; // Logical database name on that server
var $User = root; // Database user
var $Password = ""; // Database user's password
var $Link_ID = 0; // Result of mysql_connect()
var $Query_ID = 0; // Result of most recent mysql_ry()
var $Record = array(); // Current mysql_fetch_array()-result
var $Row; // Current row number
var $Errno = 0; // Error state of query
var $Error = "";
function halt($msg)
{
echo("</TD></TR></TABLE><B>Database error:</B> $msg<BR>\n");
echo("<B>MySQL error</B>: $this->Errno ($this->Error)<BR>\n");
die("Session halted.");
}
function connect()
{
if($this->Link_ID == 0)
{
$this->Link_ID = mysql_connect($this->Host, $this->User, $this->Password);
if (!$this->Link_ID)
{
$this->halt("Link_ID == false, connect failed");
}
$SelectResult = mysql_select_db($this->Database, $this->Link_ID);
if(!$SelectResult)
{
$this->Errno = mysql_errno($this->Link_ID);
$this->Error = mysql_error($this->Link_ID);
$this->halt("cannot select database <I>".$this->Database."</I>");
}
}
}
function query($Query_String)
{
$this->connect();
$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)
{
mysql_free_result($this->Query_ID);
$this->Query_ID = 0;
}
return $this->Record;
}
function seek($pos)
{
$status = mysql_data_seek($this->Query_ID, $pos);
if ($status) $this->Row = $pos;
return;
}
function num_rows()
{
return mysql_num_rows($this->Query_ID);
}
function num_fields()
{
return mysql_num_fields($this->Query_ID);
}
function field_value($Name)
{
return $this->Record[$Name];
}
function affected_rows()
{
return @mysql_affected_rows($this->Link_ID);
}
}
?>
|