MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

PHPのmysql_fetch_array()関数で数値インデックス付き配列を取得し、MySQLテーブルから全データを取得する方法

PHPのmysql_fetch_array()関数は、第2引数に定数MYSQL_NUMを指定することで、数値インデックスを持つ配列を返します。ここでは、その具体的な使い方をサンプルコードとともに解説します。

次の例では、PHPスクリプト内でmysql_fetch_array()関数の第2引数にMYSQL_NUMを指定し、「Tutorials_tbl」というテーブルからすべてのレコードを取得しています。

<?php
    $dbhost = 'localhost:3036';
    $dbuser = 'root';
    $dbpass = 'rootpassword';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    
    if(! $conn ) {
        die('Could not connect: ' . mysql_error());
    }
    
    $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl';
    mysql_select_db('TUTORIALS');
    $retval = mysql_query( $sql, $conn );

    if(! $retval ) {
        die('Could not get data: ' . mysql_error());
    }

    while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
        echo "Tutorial ID :{$row[0]} <br> ".
            "Title: {$row[1]} <br> ".
            "Author: {$row[2]} <br> ".
            "Submission Date : {$row[3]} <br> ".
            "--------------------------------<br>";
    }
    echo "Fetched data successfully\n";
    mysql_close($conn);
?>

コードのポイント

  • MYSQL_NUMを指定すると、$row[0]$row[1]のように数値インデックスで各カラムの値にアクセスできます。
  • 第2引数には、カラム名をキーとする連想配列を返すMYSQL_ASSOC、両方を返すMYSQL_BOTH(デフォルト)も指定可能です。

注意:mysql_*系関数は非推奨

mysql_connect()mysql_fetch_array()などのmysql_*系関数は、PHP 5.5で非推奨となり、PHP 7.0で削除されました。現在の開発では、mysqli拡張モジュールまたはPDOの使用が強く推奨されます。

参考までに、mysqliを使って同様の処理を記述したコードは以下のとおりです。

<?php
    $dbhost = 'localhost:3036';
    $dbuser = 'root';
    $dbpass = 'rootpassword';
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass);

    if(! $conn ) {
        die('Could not connect: ' . mysqli_connect_error());
    }

    $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl';
    mysqli_select_db($conn, 'TUTORIALS');
    $retval = mysqli_query($conn, $sql);

    if(! $retval ) {
        die('Could not get data: ' . mysqli_error($conn));
    }

    while($row = mysqli_fetch_array($retval, MYSQLI_NUM)) {
        echo "Tutorial ID :{$row[0]} <br> ".
            "Title: {$row[1]} <br> ".
            "Author: {$row[2]} <br> ".
            "Submission Date : {$row[3]} <br> ".
            "--------------------------------<br>";
    }
    echo "Fetched data successfully\n";
    mysqli_close($conn);
?>
  1. PHPスクリプトでMySQLのLIKE句を使ってデータを検索・取得する方法

    PHPからMySQLデータベースを操作する際、WHERE...LIKE句を使用することで、特定のパターンに一致するレコードだけを柔軟に抽出できます。PHPでは、SQLコマンドを実行するための関数mysql_query()の中で、通常のSQLと同じ構文でWHERE...LIKE句を記述します。WHERE...LIKE句をSELECTコマンドと組み合わせて使用した場合、実行結果として選択されたすべてのデータは、別のPHP関数であるmysql_fetch_array()を使って取得することができます。一方、WHERE...LIKE句をDELETEやUPDATEコマンドと一緒に使う場合は、データの取得

  2. PythonでMySQLのテーブルから全データを取得する方法を解説

    MySQLのテーブルは、行(レコード)と列(フィールド)で構成されています。列はデータの項目(フィールド)を定義し、行は実際のデータレコードを表します。テーブルに格納されたデータは、利用するために取得する必要があります。場合によっては、テーブルからすべてのデータを一度に取得したいこともあるでしょう。テーブルからすべての行を取得するには、SELECT * ステートメントを使用します。基本構文SELECT * FROM テーブル名上記の構文における「*」は、テーブルからすべての行を取得することを意味しています。PythonでMySQLを使ってテーブルの全データを取得する手順MySQLコネクタをイン