クラスmysql
{
var $host = "" //mysql ホスト名
;
var $user = "" //mysql ユーザー名
;
var $pwd = "" //mysql パスワード
;
var $dbName = "" //mysql データベース名
;
var $linkID = 0 //接続 ID を保存するために使用されます
;
var $queryID = 0 //クエリIDを保存するために使用されます
;
var $fetchMode= MYSQL_ASSOC;//レコードをフェッチするときのモード
var $queryTimes = 0 //クエリ数を保存します
;
var $errno = 0 //mysql エラーコード
;
var $error = "" //mysql エラーメッセージ
;
var $record = array() //レコードの配列
//======================================
// 関数: mysql()
// 関数: コンストラクター
// パラメータ: パラメータクラスの変数定義
// 説明: コンストラクターは自動的にデータベースに接続します
// 手動で接続したい場合は接続機能を削除してください
//======================================
関数 mysql($host,$user,$pwd,$dbName)
{ if(empty($host) || empty($user) || empty($dbName))
$this->halt("データベースのホスト アドレス、ユーザー名、またはデータベース名が不完全です。確認してください。");
$this->host = $host;
$this->user = $user;
$this->pwd = $pwd;
$this->dbName = $dbName;
$this->connect();//自動的に接続するように設定します
}
//======================================
// 関数: connect($host,$user,$pwd,$dbName)
// 関数: データベースに接続します
// パラメータ: $host ホスト名、$user ユーザー名
// パラメータ: $pwd パスワード、$dbName データベース名
// 戻り値: 0: 失敗
// 説明: デフォルトでは、クラス内の変数の初期値が使用されます
//======================================
function connect($host = "", $user = "", $pwd = "", $dbName = "")
{
if ("" == $host)
$host = $this->host;
if ("" == $user)
$user = $this->user;
if ("" == $pwd)
$pwd = $this->pwd;
if ("" == $dbName)
$dbName = $this->dbName;
//データベースに接続します
$this->linkID = mysql_pconnect($host, $user, $pwd);
if (!$this->リンクID)
{
$this->halt();
0 を返す;
}
if (!mysql_select_db($dbName, $this->linkID))
{
$this->halt();
0 を返す;
}
$this->リンクIDを返す
}
//======================================
// 関数: query($sql)
// 関数: データクエリ
// パラメータ: $sql クエリ対象の SQL ステートメント
// 戻り値: 0: 失敗
//======================================
関数クエリ($sql)
{
$this->queryTimes++;
$this->queryID = mysql_query($sql, $this->linkID);
if (!$this->クエリID)
{
$this->halt();
0 を返す;
}
$this->クエリID;
を返す
}
//======================================
// 関数: setFetchMode($mode)
// 機能: レコード取得モードを設定します
// パラメータ: $mode モード MYSQL_ASSOC、MYSQL_NUM、MYSQL_BOTH
// 戻り値: 0: 失敗
//======================================
関数 setFetchMode($mode)
{
if ($mode == MYSQL_ASSOC || $mode == MYSQL_NUM || $mode == MYSQL_BOTH)
{
$this->fetchMode = $mode;
1 を返します;
}
それ以外
{
$this->halt("間違ったモードです。");
0 を返す;
}
}
//======================================
// 関数: fetchRow()
// 関数: レコードセットからレコードを取り出します
// 戻り値: 0: エラーレコード: A レコード
//======================================
関数 fetchRow()
{
$this->record = mysql_fetch_array($this->クエリID,$this->fetchMode);
$this->レコードを返す;
}
//======================================
// 関数: fetchAll()
// 関数: レコードセットからすべてのレコードを取得します
// 戻り値: レコードセット配列
//======================================
関数 fetchAll()
{
$arr = array();
while($this->record = mysql_fetch_array($this->クエリID,$this->fetchMode))
{
$arr[] = $this->レコード;
}
mysql_free_result($this->クエリID);
$arr を返します;
}
//======================================
// 関数: getValue()
// 関数: レコード内の指定されたフィールドのデータを返します
// パラメータ: $field フィールド名またはフィールド インデックス
// 戻り値: 指定されたフィールドの値
//======================================
関数getValue($field)
{
$this->record[$field];
を返します
}
//======================================
// 関数:affectedRows()
// 関数: 影響を受けるレコードの数を返します
//======================================
関数影響を受けるRows()
{
mysql_affected_rows($this->linkID)を返します;
}
//======================================
// 関数: RecordCount()
// 関数: クエリ レコードの総数を返します
// パラメータ: なし
// 戻り値: レコードの総数
//======================================
関数recordCount()
{
mysql_num_rows($this->クエリID)を返します;
}
//======================================
// 関数: getQueryTimes()
// 関数: クエリの数を返します
// パラメータ: なし
// 戻り値: クエリ数
//======================================
関数 getQueryTimes()
{
$this->queryTimes;
を返す
}
//======================================
// 関数: getVersion()
// 関数: mysql のバージョンを返します
// パラメータ: なし
//======================================
関数 getVersion()
{
$this->query("バージョン()をverとして選択");
$this->fetchRow();
$this->getValue("ver");
を返します
}
//======================================
// 関数: getDBSize($dbName, $tblPrefix=null)
// 関数: データベースが占有しているスペースを返します
// パラメータ: $dbName データベース名
// パラメーター: $tblPrefix テーブルの接頭辞、オプション
//======================================
関数 getDBSize($dbName, $tblPrefix=null)
{
$sql = "$dbName からのテーブル ステータスを表示" .
if($tblPrefix != null) {
$sql .= " '$tblPrefix%' のように";
}
$this->クエリ($sql);
$サイズ = 0;
while($this->fetchRow())
$size += $this->getValue("Data_length") + $this->getValue("Index_length");
$size を返します;
}
//======================================
// 関数: insertID()
// 関数: 最後に挿入された自動インクリメント ID を返します
// パラメータ: なし
//======================================
関数 insertID() {
mysql_insert_id() を返します;
}
//======================================
// 関数: halt($err_msg)
// 関数: すべてのエラー メッセージを処理します
// パラメーター: $err_msg カスタマイズされたエラー メッセージ
//======================================
関数停止($err_msg="")
{
if ("" == $err_msg)
{
$this->errno = mysql_errno();
$this->error = mysql_error();
echo "mysql エラー:
";
echo $this->errno.":".$this->error."
";
終了します;
}
それ以外
{
echo "mysql エラー:
";
echo $err_msg."
";
終了します;
}
}
}
?>