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:接続終了";
?>