ホームページ  >  記事  >  バックエンド開発  >  PHP データベース接続クラス_PHP チュートリアル

PHP データベース接続クラス_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:05:38841ブラウズ

この記事では、主に PHP チュートリアルと MySQL チュートリアルのデータ関連操作に関する 2 つのデータベース チュートリアルの接続例を提供します。必要な友人はそれを使用できます。

クラス mysql {
private $db_host //ホストアドレス
プライベート $db_user // ユーザー名
private $db_pass; //接続パスワード
プライベート $db_name //名前
プライベート $db_charset //エンコーディング
プライベート $conn; public $debug=false;//デバッグスイッチ、デフォルトでオフになっています
private $query_id; // SQL ステートメントが正常に実行されたかどうかを判断するために使用されます
private $result; //結果セット
private $num_rows; //結果セット内の行数。select にのみ有効です
private $insert_id; //前の挿入操作で生成された ID
// コンストラクター/デストラクター
function __construct ($db_host,$db_user,$db_pass,$db_name,$db_charset,$conn) {
$this->db_host = $db_host ; $this->db_user = $db_user ; $this->db_pass = $db_pass ; $this->db_name = $db_name ; $this->db_charset = $db_charset ; $this->conn = $conn ; $this->connect(); }
関数 __destruct () {
@mysql_close($this->conn); }
// データベースに接続/選択します
パブリック関数 connect () {
if ($this->conn == 'pconn') {
@$this->conn = mysql_pconnect($this->db_host,$this->db_user,$this->db_pass); } その他 {
@$this->conn = mysql_connect($this->db_host,$this->db_user,$this->db_pass); }
if (!$this->conn) {
$this->show_error('データベース接続に失敗しました: ユーザー名またはパスワードが間違っています!'); }
if (!@mysql_select_db($this->db_name,$this->conn)) {
$this->show_error("データベースの選択に失敗しました: データベース $this->db_name は使用できません"); }
mysql_query("セット名 $this->db_charset"); $this->conn を返す
}
// クエリメソッド
パブリック関数クエリ ($sql) {
if ($this->query_id) $this->free_result(); $this->query_id = @mysql_query($sql,$this->conn); if (!$this->query_id) $this->show_error("SQL ステートメント "$sql" の実行中にエラーが発生しました"); $this->クエリIDを返す
}
// 詳細なエラー情報を表示します
パブリック関数 show_error ($msg) {
if($this->デバッグ){
$errinfo = mysql_error(); echo "エラー: $msg
戻り値: $errinfo

"; }その他{
echo '

エラーが発生しました!


; }
}
// クエリ実行の成功または失敗に関する情報を取得します
パブリック関数 get_query_info($info){
if ($this->query_id) {
$info をエコーし​​ます。 }
}
// すべてをクエリします
パブリック関数 findall ($table_name) {
$this->query("select * from $table_name"); }
// mysql_fetch_array
パブリック関数 fetch_array () {
if ($this->query_id) {
$this->result = mysql_fetch_array($this->query_id); $this->結果を返す
}
}
//……
パブリック関数 fetch_assoc () {
if ($this->query_id) {
$this->result = mysql_fetch_assoc($this->query_id); $this->結果を返す
}
}
パブリック関数 fetch_row () {
if ($this->query_id) {
$this->result = mysql_fetch_row($this->query_id); $this->結果を返す
}
}
パブリック関数 fetch_object () {
if ($this->query_id) {
$this->result = mysql_fetch_object($this->query_id); $this->結果を返す
}
}
// num_rows を取得します
パブリック関数 num_rows () {
if ($this->query_id) {
$this->num_rows = mysql_num_rows($this->query_id); $this->num_rows を返します
}
}
// insert_id を取得します
パブリック関数 insert_id () {
$this->insert_id = mysql_insert_id() を返します
}
// テーブルの数を表示します
パブリック関数 show_tables () {
$this->query("テーブルを表示"); if ($this->query_id) {
echo "データベース $this->db_name には ".$this->num_rows($this->query_id)" があります。" テーブル
"; $i = 1; while ($row = $this->fetch_array($this->query_id)){
echo "$i -- $row[0]
"; $i++; }
}
}
// データベースがいくつあるかを表示します
パブリック関数 show_dbs(){
$this->query("データベースを表示"); if ($this->query_id) {
echo "データベースの合計 ".$this->num_rows($this->query_id)."
"; $i = 1;while ($this->row = $this->fetch_array($this->query_id)){
echo "$i -- ".$this->row[データベース]."
"; $i++; }
}
}
//データベースを削除: 削除結果を返す
パブリック関数drop_db ($db_name='') {
if ($db_name == '') {
$db_name = $this->db_name;//デフォルトで現在のデータベースを削除します
$this->query("データベース $db_name"); } その他 {
$this->query("データベース $db_name"); }
if ($this->query_id) {
"データベース $db_name が正常に削除されました" を返します
} その他 {
$this->show_error("データベース $db_name の削除に失敗しました"); }
}
//データテーブルの削除: 削除結果を返す
パブリック関数drop_table ($table_name) {
$this->query("テーブル $table_name"); if ($this->query_id) {
"データテーブル $table_name が正常に削除されました" を返します
} その他 {
$this->show_error("データ テーブル $table_name の削除に失敗しました"); }
}
//データベースを作成します
パブリック関数 create_db ($db_name) {
$this->query("データベース $db_name を作成"); if($this->query_id){
"データベース $db_name が正常に作成されました" を返します
} その他 {
$this->show_error("データベース $db_name の作成に失敗しました"); }
}
// データベースのバージョンを取得します
パブリック関数 get_info(){
エコー mysql_get_server_info(); }
// メモリを解放します
パブリック関数 free_result() {
if ( @mysql_free_result($this->query_id) )
設定を解除します ($this->結果)
$this->クエリID = 0; }
} // クラスを終了します
?>

以下は、リモートまたはローカルのデータベース接続を自動的に選択するコードです



// mysql 操作クラスが含まれます
include_once 'mysql.class.php'
//ローカルの mysql データ
$mysql_local_data = array('db_host'=>'localhost',
'db_user'=>'root',

'db_pass'=>'root',

'db_name'=>'テスト'); //リモート mysql データ

$mysql_remote_data = array('db_host'=>'61.183.41.178',

'db_user'=>'xxx'、

'db_pass'=>'xxx'、
'db_name'=>'xxx'); // 公開データ
$tb_prefix = 'php95_'; $db_charset = 'utf-8'; //ローカル接続が成功した場合は、ローカルの mysql クラスをインスタンス化します。そうでない場合は、リモート データベースに接続して、mysql クラスをインスタンス化します
if (@mysql_connect($mysql_local_data[db_host], $mysql_local_data[db_user], $mysql_local_data[db_pass]))
$db = 新しい mysql($db_host, $mysql_local_data[db_user], $mysql_local_data[db_pass], $mysql_local_data[db_name], $db_charset, $conn); それ以外は
$db = 新しい mysql($mysql_remote_data[db_host], $mysql_remote_data[db_user], $mysql_remote_data[db_pass], $mysql_remote_data[db_name], $db_charset, $conn); $db->show_tables(); //テスト: 現在のデータベース内のすべてのテーブル名を表示します
?>

test.php ファイル内の仮想ホストのデータベースを操作したいとします。まずローカルでデバッグし、次にローカルとリモートの 2 つの異なるデータベースに接続する必要があります。質問: test.php が接続するかどうかを自動的に識別するようにするにはどうすればよいですか。ローカルまたはリモートで接続しますか? リモート データベースはどうですか?




http://www.bkjia.com/PHPjc/630771.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/630771.html

技術記事

この記事では、主に PHP チュートリアルと MySQL チュートリアルのデータ関連の操作に関する 2 つのデータベース チュートリアルの接続例を紹介します。 ?php class mysql { private $db_h...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。