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
<?php
/* ------------------------------------------------------------------------------
 *  MySQL PDO連携:-- MySQL接続PDOのプリペアドステートメントによるクエリ実行 --
 *  2016.06.25 作成 yoshi of CXMedia Inc.
 * ------------------------------------------------------------------------------
 */
/* ----------------------
 *   データベース接続
 * --------------------- */
// MySQLデータベース接続の初期設定
$host     'localhost';    //接続サーバ(URL)
$user     'user';         //DB接続のユーザ名
$password 'eLerning_PWD'//DB接続のパスワード
$dbname   'list_db';      //接続データベース名
//dsnの設定(PDOドライバ名:mysqlの指定)
$dsn      "mysql:dbname={$dbname};host={$host}";

// "try ~ catch ~"文により、MySQLデータベースに接続して、インスタンス作成
try {
    
$db = new PDO($dsn$user$password);
} catch (
PDOException $e) {
    
// DB接続エラーのときエラーメッセージを表示して、終了
    
echo 'MySQL接続エラー: '.$e->getMessage();
    exit;
}
// 接続開始
echo "PDO_MySQL:「{$dbname}」のデータベース接続に成功!",'<br>';

/* -------------------------
 *   クエリの実行と結果表示
 * ------------------------- */
// 名前(name)が、'まきこ'のヒットするものを検索
$name  'まきこ';
// プリペアドステートメントで文字列データを'?'で指定
$sql "SELECT * FROM persons WHERE name=?";
// prepare()メソッドで検索準備(ステートメントのチェックはしない。)
$stmt $db->prepare($sql);
// execute()メソッドで'?'に対応するデータを配列で指定して検索実行
$result $stmt->execute(array($name));
// クエリ結果の行数
echo '件数:',$stmt->rowCount(),'<br>';

// DB検索した結果の内容表示
echo '■personsテーブルのプリペアドステートメント検索内容<br>';
if(
$result === FALSE) {
    echo 
"クエリ失敗:" .$sql,'<br>';
} else {
    echo 
'<pre>';
    while (
$ary $stmt->fetch(PDO::FETCH_ASSOC)){
        
print_r($ary);
    }
    echo 
'</pre>';
}

echo 
"MySQL:接続終了";
?>