【PHP】これで分かる関数! – データの検索・サンプル1 –

PHP

はじめに

この記事で紹介するサンプルプログラムは次の記事で書いている共通関数を使用している場合があります。

サンプルプログラム1

サンプルプログラム1はPDO::query()の使い方・戻り値について紹介しています。

<?php
    // 引数の値への厳密な型付け
    declare(strict_types = 1);
    // 共通ライブラリの読み込み
    require_once __DIR__ . "../../../lib/sample_common.php";
    $filename = basename(__FILE__);

    // 共通HTMLヘッダ出力処理
    common_html_header($filename);

    echo "ファイル名:${filename}<br>\n";
    echo "テーブルの検索その1<br>\n";

    // DB接続情報
    $dbn = "mysql:dbname=sampledb;host=localhost;port=3306";
    $usr = "sampleusr";
    $pw = "sample";

    $pdo = null;        // PDOオブジェクト
    $pst = null;        // PDOStatementオブジェクト

    try {
        // DB接続
        $pdo = connect_db($dbn, $usr, $pw);

        echo "select検索結果が存在する場合<br>\n";
        $pst = $pdo->query("SELECT * FROM GOODS WHERE GOODS_CODE IN ('1000000001', '1000000002')");

        // SELECT文の結果が存在する場合、ループし表示する
        echo "<pre>\n";
        foreach($pst as $row) {
            print_r($row);
        }
        echo "</pre>\n";
        
        echo "select検索結果が存在しない場合<br>\n";
        $pst = $pdo->query("SELECT * FROM GOODS WHERE GOODS_CODE = '9000000001'");
        // SELECT文の結果が0件の場合
        if($pst->rowCount() === 0){
            echo "結果に一致する行は存在しません<br>\n";
        }
        echo "<br>\n";
        
        echo "SQL文に誤りがある場合<br>\n";
        $pst = $pdo->query("SELEC * FROM GOODS WHERE GOODS_CODE = '9000000001'"); 
        // SQL文に誤りがある場合、falseが返却される
        if($pst === false) {
            echo "SQL文に誤りがあります<br>\n";
        }  
    } catch(PDOException $e) {
        // DB処理中にエラーが発生した場合、エラーの表示
        echo "Line:" . $e->getLine() . ": ";
        echo "Code:" . $e->getCode() . ": ";
        echo "Message:" . $e->getMessage() . ":<br>\n";
    } finally {
        // DB接続にした場合、DBのクローズ
        if(!is_null($pdo)) {
            $pdo = null;
        }
    }

    // 共通HTMLフッター出力処理
    common_html_footer();
?>

実行結果です。

・画面

・HTML

<!DOCTYPE html>
<html lang="ja">
<head>
	<meta charset="UTF-8">
	<title>sample02_09_02.php</title>
</head>
<body>
ファイル名:sample02_09_02.php<br>
テーブルの検索その1<br>
select検索結果が存在する場合<br>
<pre>
Array
(
    [goods_code] => 1000000001
    [0] => 1000000001
    [edate] => 99991231
    [1] => 99991231
    [goods_name] => 2B鉛筆
    [2] => 2B鉛筆
    [sdate] => 20200101
    [3] => 20200101
    [price] => 50
    [4] => 50
)
Array
(
    [goods_code] => 1000000002
    [0] => 1000000002
    [edate] => 99991231
    [1] => 99991231
    [goods_name] => B鉛筆
    [2] => B鉛筆
    [sdate] => 20200101
    [3] => 20200101
    [price] => 40
    [4] => 40
)
</pre>
select検索結果が存在しない場合<br>
結果に一致する行は存在しません<br>
<br>
SQL文に誤りがある場合<br>
SQL文に誤りがあります<br>
</body>

コメント