データの読み取りは PHP にとって非常に重要です。この記事では、PHP MySQL を通じてデータを読み取る方法について詳しく説明します。
MySQL データベースからデータを読み取ります
SELECT ステートメントは、データ テーブルからデータを読み取るために使用されます:
SELECT column_name(s) FROM table_name
* 記号を使用して、すべてのデータ テーブルのフィールドを読み取ることができます:
SELECT * FROM table_name
SQL について詳しくは、SQL チュートリアルをご覧ください。
MySQLi の使用
次の例では、myDB データベースの MyGuests テーブルから id、firstname、lastname 列のデータを読み取り、ページに表示します。
例 (MySQLi - オブジェクト指向)
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB"; // 创建连接$conn = new mysqli($servername, $username, $password, $dbname);// Check connectionif ($conn->connect_error) { die("连接失败: " . $conn->connect_error);} $sql = "SELECT id, firstname, lastname FROM MyGuests";$result = $conn->query($sql); if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; }} else { echo "0 结果";}$conn->close();?>
上記のコード 分析は次のとおりです:
まず、MyGuests データ テーブルから 3 つのフィールド id、firstname、lastname を読み取る SQL ステートメントを設定します。次に、変更した SQL ステートメントを使用してデータベースから結果セットを取得し、それをコピーした変数 $result に割り当てます。
関数 num_rows() は返されるデータを決定します。
複数のデータが返された場合、関数 fetch_assoc() は結合されたセットを連想配列に入れてループで出力します。 while() は結果セットをループアウトし、id、firstname、lastname の 3 つのフィールド値を出力します。
次の例では MySQLi のプロセス指向のアプローチを使用しており、その効果は上記のコードと似ています:
例 (MySQLi - プロセス指向)
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB"; // 创建连接$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$conn) { die("连接失败: " . mysqli_connect_error());} $sql = "SELECT id, firstname, lastname FROM MyGuests";$result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出数据 while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; }} else { echo "0 结果";} mysqli_close($conn);?>
PDO の使用 (+ 前処理)
次の例では、準備されたステートメント。
MyGuests テーブルで id、firstname、lastname フィールドを選択し、HTML テーブルに入力します:
例 (PDO)
<?phpecho "<table style='border: solid 1px black;'>";echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>"; class TableRows extends RecursiveIteratorIterator { function construct($it) { parent::construct($it, self::LEAVES_ONLY); } function current() { return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>"; } function beginChildren() { echo "<tr>"; } function endChildren() { echo "</tr>" . "\n"; } } $servername = "localhost";$username = "username";$password = "password";$dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests"); $stmt->execute(); // 设置结果集为关联数组 $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { echo $v; }}catch(PDOException $e) { echo "Error: " . $e->getMessage();}$conn = null;echo "</table>";?>
この記事では、php MySQL を介してデータを読み取る操作について詳しく説明しており、より多くの学習資料が明確ですphp 中国語 Web サイトに従って視聴してください。
関連する推奨事項:
PHP MySQL プリペアドステートメントに関する関連知識
以上がPHP MySQL を介してデータを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。