コードをコピー コードは次のとおりです:
/*
* mysql数据库 DB类
* @package db
* @author yytcpt(無影)
* @version 200 8-03 -27
* @copyrigth http://www.d5s.cn/
*/
class db {
var $connection_id = "";
var $pconnect = 0;
var $shutdown_queries = array();
var $queries = array();
var $query_id = "";
var $query_count = 0;
var $record_row = array();
var $failed = 0;
var $halt = "";
var $query_log = array();
function connect($db_config){
if ($this->pconnect){
$this->connection_id = mysql_pconnect($db_config["hostname"], $db_config["username"] , $db_config["パスワード"]);
}else{
$this->connection_id = mysql_connect($db_config["ホスト名"], $db_config["ユーザー名"], $db_config["パスワード"]);
}
if ( ! $this->connection_id ){
$this->halt("MySQL Server に接続できません");
}
if ( ! @mysql_select_db($db_config["database"], $this->connection_id) ){
$this->halt("MySQL データベースに接続できません");
}
if ($db_config["charset"]) {
@mysql_unbuffered_query("SET NAMES '".$db_config["charset"]."'");
}
true を返します。
}
// $this->connection_id);
$this->queries[] = $query_id;
if (! $this->query_id ) {
$this->halt("查询失败:n$query_id");
}
$this->query_count ;
$this->query_log[] = $str;
return $this->query_id;
}
//送信SQL 查询、并不取和缓存結果的実行
function query_unbuffered($sql="")
return $this->query($sql, 'mysql_unbuffered) _クエリ');
}
//从结果集中取得一行作為关联数组
function fetch_array($sql = ""){
if ($sql == "") $sql = $this->クエリID;
$this->record_row = @mysql_fetch_array($sql, MYSQL_ASSOC);
return $this->record_row;
}
function shutdown_query($query_id = ""){
$this->shutdown_queries[] = $query_id;
}
// INSERT、UPDATE、または DELETE の場合のみ、結果セット内の行数を取得します。
functionaffected_rows() {
return @mysql_affected_rows($this->connection_id)
}
// 結果セット内の行数を取得します。SELECT ステートメントでのみ有効です。
function num_rows($query_id="") {
if ($query_id == "") $query_id = $this- >query_id;
Return @mysql_num_rows($query_id);
}
//前の MySQL 操作のエラー メッセージの数値コードを返します
function get_errno(){
$this ->errno = @mysql_err no ($this->connection_id);
return $this->errno;
}
//前の INSERT 操作によって生成された ID を取得します
関数insert_id(){
return @ mysql_insert_id($this->connection_id);
}
//クエリ数を取得します
function query_count() {
return $this-> query_count;
}
// 結果メモリを解放します Function Free_Result ($ query_id = "") {
if ($ query_id == "") $ query_id = $ This- & gt; sult ($ query_id);
// mysql 接続を閉じる
Function Close_db () {
IF ($ this- & gt; connection_id) Return @Mysql_Close ($ this- & gt; connection_id) ;
} >/ / MySQL データベース内のテーブルをリストします。
function get_table_names(){
global $db_config;
$result = mysql_list_tables($db_config["database"]); 🎜> $num_tables = @my sql_numrows($ result);
for ($i = 0; $i $tables[] = mysql_tablename($result, $i) ;
}
mys ql_free_result( $result);
return $tables;
if ($query_id == "") $query_id = $this->query_id; field = mysql_fetch_field($query_id)) {
$fields[] = $field;
}
return $fields;
//错误提案
function halt($the_error=""){
$message = $the_error."
rn";
$message.= $this->get_errno() 。 "
rn";
$sql = "INSERT INTO `db_error`(pagename, errstr, timer) VALUES('".$_SERVER["PHP_SELF"]."', '".addslashes($message)."', ".time ().")";
@mysql_unbuffered_query($sql);
if (DEBUG==true){
echo "
echo " rn";
echo "rn";
echo "rn";
rn
echo "rn";
echo "