1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
/* -----------------------------------------------------------------------------------------------
 *  MySQLi classのAPI接続:MySQLiオブジェクト指向接続:「継承クラス」のリペアドステートメントの実行
 *                          とsuper classメソッドの混在した利用例
 *  2016.06.30 作成 yoshi of CXMedia Inc.
 * -----------------------------------------------------------------------------------------------
 */
// MySQLiクラスを拡張(extends)したclassのロード
require_once "php_class/MySQLi_e.class.php";

// MySQLデータベース接続の初期設定
$db_define = array(
    
'DBhost'  => 'localhost',    //接続サーバ(URL)
    
'DBuser'  => 'user',         //DB接続のユーザ名
    
'DBpwd'   => 'eLerning_PWD'//DB接続のパスワード
    
'DBname'  => 'list_db',      //接続データベース名
    
'DBtblm'  => 'persons',      //テーブル名
);
// MySQLi接続のインスタンス生成
$db = new MySQLi_e($db_define);

// MySQL接続の成功メッセージ表示
echo "■MySQL:「{$db->DBname}」のデータベース接続(オブジェクト指向型)に成功!",'<br>';

// SQL文の作成
$sql "SELECT * FROM ".$db->DBtblm;
// 継承クエリメソッド:「Query()」の実行
$db->Query($sql);

// レコード件数メソッド:「Rowcount()」の実行
echo 'レコード件数:',$db->Rowcount(),'<br>';

/* ---------------------------------------------------------------
 *        プリペアドステートメントの実行
 *   bind_paramの変数は、quote処理するとバインドされないので注意
 * --------------------------------------------------------------- */
$ary  = array(
    
'pref_code' => 'KGW2',
    
'city_code' => 'K001'
);
// sqlのプリペアドステートメントの作成
$sql  "SELECT  name FROM ".$db->DBtblm." WHERE pref_code=? && city_code=?";
// 継承の検索準備メソッド:「Prepare()」の実行
if( $stmt $db->Prepare($sql) ){
    if( 
$wk_param $db->BindParamType($ary) ){
        
// バインド:super classで、bind_param()実行
        
if( $stmt->bind_param($wk_param,$ary['pref_code'],$ary['city_code']) ){
            
// 継承の実行メソッド:「Execute()」
            
if($db->Execute()){
                
// 結果バインド:super classで、bind_result()実行
                
$stmt->bind_result($name);
                
                
// 継承のステートメントFetchメソッド:「FetchStmt()」$stmt->fetch();と同じ
                
while($db->FetchStmt()){
                    
// 結果を表示
                    
printf("%s 県の %s 市にいる人の名前は、 %s<br><br>"$ary['pref_code'],$ary['city_code'],$name);
                }
                
// ステートメントを閉じる:super classで実行
                
$stmt->close();
            } else {
                
// 継承エラープロパティ:「DBerror」の表示
                
echo $db->DBerror,'<br>';
            }
        }
    } else {
        echo 
$db->DBerror,'<br>';
    }
} else {
    echo 
$db->DBerror,'<br>';
}

// 継承のDBクローズメソッド:「Close()」の実行
$db->Close();

?>