これはよく使われる mysql データベース クラスです。ダウンロードして見てください。
class mySqlClass {//データベース アクセス クラス全体を定義します mySqlClass
var $querynum = 0;//クエリ回数変数
//サーバー接続を開きます---------------- -------------------------------------------------- -- ----------------------------------//
function connect($dbhost, $dbuser, $dbpw , $ dbname = '', $pconnect = 0) {
//mysql_connect -- MySQL サーバーへの接続を開きます
//mysql_pconnect -- MySQL サーバーへの永続的な接続を開きます
//mysql_pconnect() および mysql_connect()は非常に似ていますが、主な違いが 2 つあります。
//まず、接続時に、この関数はまず同じホスト上で同じユーザー名とパスワードで開かれている (永続的な) 接続を検索します。見つかった場合は、新しい接続を開かずにこの接続 ID を返します。 。
//第 2 に、スクリプトの実行時に SQL サーバーへの接続は閉じられません。この接続は将来の使用のために開いたままになります (mysql_close() は、mysql_pconnect() によって確立された接続を閉じません)。
//永続的な接続設定が有効かどうかを決定します。有効な場合は永続的な接続が使用されます。
if($pconnect) {
if(!@mysql_pconnect. ($dbhost, $dbuser, $dbpw)) {
$this ->halt('1');
}
} else {
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
$this->halt('1');
}
}
//データベースのバージョンが 4.1 以降で、グローバル変数の文字セット パラメータが空でない場合は、文字エンコーディングを設定します------ ------------------------ ------------------------ --//
if($this->version() > '4.1') {
//$charset = 'gbk';
$charset = 'utf-8';
$dbcharset = '';
if(!$dbcharset && in_array(strto lower($charset), array('gbk', 'big5' , 'utf-8'))) {
$dbcharset = str_replace('-', '', $charset);
}
//mysql_query -- MySQL クエリを送信します
//PHP が mysql データベースを読み取るときに中国語の文字化けを避けるために、NAMES パラメータを対応する文字セット パラメータ値に設定します
sql_mode パラメータを空に設定します
if($this- >version() > '5.0.1') {
mysql_query("SET sql_mode=''");
}
}
if($dbname) {// データベース名が存在する場合
//mysql_select_db -- MySQL データベースを選択します
//データベースの選択が失敗した場合
Mysql_select_db($dbname);
}
}
//mysql_select_db -- MySQL データベースを選択します---------- ------- -------------------------------------- ------- ----//
function select_db($dbname) {
}
//データ レコードの読み取り関数------------- -------- ------------------------------------------ -------- --//
//mysql_fetch_array -- 結果セットから行を連想配列、数値配列、またはその両方として取得します
//MYSQL_ASSOC は、フィールド名を配列のインデックス名として使用してデータ列を返します。
//MYSQL_BOTH 返されるデータ列は、フィールド名と数値インデックスを配列のインデックス名として使用します。
//MYSQL_NUM 返されたデータ列は、配列のインデックス名として数値インデックスを使用します。インデックスは 0 から始まり、返された結果の最初のフィールドを示します。
function fetch_array($query, $result_type = MYSQL_ASSOC) {
return mysql_fetch_array($query, $result_type);
}
//Query データベース関数---------------- - ------------------------------------------------- - -//
function query($sql, $type = '') {
$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
'mysql_unbuffered_query' : 'mysql_query';
if( ! ($query = $func($sql)) && $type != 'SILENT') {
$this->halt('0');
}
//クエリ回数 +1
$this->querynum++; ;
//クエリ結果のリソースを返す
return $query;
}
//影響を受けるレコードの数を返します--------------------------------------------------- ----- ------------------------//
//関数が正常に実行されると、記録される行数は失敗した場合は「-」が返されます。
function inspired_rows() {
return mysql_affected_rows();
}
//前の MySQL 操作によって生成されたテキスト エラー メッセージを返します--------------------- ----- -----------------------//
function error() {
return mysql_error();
}
//Return以前の MySQL 操作で生成されたテキスト エラー メッセージの整数型------------------------------------//
function errno( ) {
return intval(mysql_errno());
}
//mysql_result -- 結果セット内のフィールド値を返します------ ---------- ----------//
関数 result($query, $row) {
$query = @ mysql_result($query, $row);
return $query;
}
//mysql_num_rows -- 結果セット内の行数を取得します ------------------ ---------------- ----------------//
function num_rows($query) {
$query = mysql_num_rows($ query);
return $query;
}
//mysql_num_fields -- 結果セット内のフィールドの数を取得します---------------------- -------------------- //
function num_fields($query) {
return mysql_num_fields($query);
}
//mysql_free_result --使用済み結果メモリ---------------- ----------------------------- -//
function free_result($query) {
return mysql_free_result($query);
}
//mysql_insert_id -- 前の INSERT 操作によって生成された ID を取得します----------- ---------------------- ----------//
function insert_id() {
$id = mysql_insert_id();
return $id;
}
//mysql_fetch_row -- 結果セットから数値配列として行を取得します ------------------------ -------------------//
function fetch_row($query) {
$query = mysql_fetch_row($query);
return $query;
}
/ /mysql_field_name -- 結果内の指定されたフィールドのフィールド名を取得します----------- ----------------------- -----------//
function field_name($query,$num=0){
return mysql_field_name($query,$num);
}
//mysql_fetch_field -- カラム情報を取得する結果セットから取得し、それをオブジェクトとして返します $num=0 は最初のフィールドを表します-------------------------- -------------------/ /
function fetch_fields($query,$num=0) {
return mysql_fetch_field($query,$num);
}
//mysql_get_server_info -- MySQL サーバー情報を取得します----------- ------------------------ ----//
関数 version() {
$MySqlVer = mysql_get_server_info() ;
if (empty($MySqlVer) || $MySqlVer==""){
$MySqlVer = $this->result( ($this->query("SELECT VERSION()")), 0);
}
if (empty($MySqlVer) || $MySqlVer==""){
$MySqlVer = '0';
}
return $MySqlVer;
}
//mysql_close -- MySQL 接続を閉じます- --------------------------------- ------------------- ------------------//
function close() {
return @mysql_close ();
}
//例外処理関数 halt ----- ------------------------------------ --------------- -------------------//
function halt($mess) {
global $DataBaseBadFlag;
//$dberror = $this->error();
//$dberrno = $this->errno(); //1114 人員接続制限
if ($mess=="1"){
if ( $DataBaseBadFlag!=1){
echo("");
}
else{
if (!@function_exists(' phpEscape')){
require("escape.php") ;
}
echo phpEscape("Lock = false;location.href='pagedataerr.php';");
}
exit();
}
else {
return false;
}
}
}