今日は、PHP でクエリ結果を配列に変換する方法を共有したいと思います。 Web 開発では、データベースからデータを取得して Web ページに表示する必要があることがよくあります。 PHP と MySQL を使用するのは非常に一般的な選択です。クエリを実行して結果を取得すると、通常は複数のレコードを含む結果セット オブジェクトを取得します。このデータの処理と操作を容易にするために、データを配列に変換できます。
PHP では、mysqli 拡張機能と PDO 拡張機能を使用して MySQL データベースに接続できます。どちらの拡張機能も、クエリ結果を配列に変換するメソッドを提供します。この記事では、これら 2 つの方法をそれぞれ紹介します。
1. mysqli 拡張機能を使用してクエリ結果を配列に変換します
mysqli は、PHP 5 以降で推奨される MySQL データベース拡張機能です。 MySQL データベースへの接続、SQL クエリの実行、結果の処理など、一連のオブジェクト指向インターフェイスを提供します。このうち、mysqli_result クラスは結果セットを表すオブジェクトです。 mysqli_result クラスの fetch_array メソッドを呼び出すことで、結果セットを配列に変換できます。
fetch_array メソッドは、返される配列のタイプを示すパラメーターを受け取ります。デフォルトでは、数値と関連するインデックスを含む配列を返します。渡されるパラメータで MYSQLI_ASSOC、MYSQLI_NUM、または MYSQLI_BOTH 定数を使用することで、返される配列タイプを指定できます。
以下は例です:
// 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database'); // 执行查询,获取结果集对象 $result = $conn->query('SELECT * FROM users'); // 将结果集转换为数组 $rows = $result->fetch_array(MYSQLI_ASSOC); // 输出数组 print_r($rows);
このコードは、クエリ結果のデータの最初の行を出力します。データのすべての行を出力したい場合は、while ループを使用できます。
// 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database'); // 执行查询,获取结果集对象 $result = $conn->query('SELECT * FROM users'); // 遍历结果集,将每行数据转换为数组并输出 while ($row = $result->fetch_array(MYSQLI_ASSOC)) { print_r($row); }
2. PDO 拡張機能を使用して、クエリ結果を配列に変換します
PDO は、PHP 5.1 以降で提供されるデータベース拡張機能であり、MySQL、PostgreSQL などのさまざまなデータベースをサポートしています。 、SQLite、Oracle など。 PDO 拡張機能には、SQL クエリの実行後の結果セットを表す PDOStatement オブジェクトが用意されており、オブジェクト内の fetch メソッドを使用して結果セットを配列に変換できます。
fetch メソッドは、返される配列のタイプを示すパラメーターも受け取ります。デフォルトでは、数値と関連するインデックスを含む配列を返します。渡されるパラメーターで PDO::FETCH_ASSOC、PDO::FETCH_NUM、または PDO::FETCH_BOTH 定数を使用することで、返される配列の型を指定できます。
次は例です:
// 连接数据库 $dsn = 'mysql:host=localhost;dbname=database'; $username = 'username'; $password = 'password'; $conn = new PDO($dsn, $username, $password); // 执行查询,获取 PDOStatement 对象 $stmt = $conn->query('SELECT * FROM users'); // 将结果集转换为数组 $rows = $stmt->fetch(PDO::FETCH_ASSOC); // 输出数组 print_r($rows);
同様に、データのすべての行を出力したい場合は、while ループを使用できます:
// 连接数据库 $dsn = 'mysql:host=localhost;dbname=database'; $username = 'username'; $password = 'password'; $conn = new PDO($dsn, $username, $password); // 执行查询,获取 PDOStatement 对象 $stmt = $conn->query('SELECT * FROM users'); // 遍历结果集,将每行数据转换为数组并输出 while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { print_r($row); }
summary
ここでは、mysqli と PDO 拡張機能を使用してクエリ結果を配列に変換する方法を学びました。実際の開発では、通常、このプロセスを簡素化するためにフレームワークまたは ORM (Laravel、Doctrine など) を使用します。ただし、この基本的な実装を理解することは、Web 開発の基礎となる原理を理解する上で非常に重要です。この記事が読者のお役に立てれば幸いです。
以上がPHPでクエリ結果を配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。