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