ホームページ > バックエンド開発 > PHPチュートリアル > PHP MySQL の操作とデータの読み取り方法

PHP MySQL の操作とデータの読み取り方法

jacklove
リリース: 2023-03-25 13:54:01
オリジナル
2519 人が閲覧しました

PHP MySQL のデータ読み込みはデータベース操作において重要な役割を果たします。この記事ではデータ読み込みの操作について詳しく説明します。

MySQL データベースからデータを読み取ります

SELECT ステートメントは、データ テーブルからデータを読み取るために使用されます:

SELECT column_name(s) FROM table_name

* 記号を使用して、すべてのデータ テーブルのフィールドを読み取ることができます:

SELECT * FROM table_name

SQL について詳しくは、SQL チュートリアルをご覧ください。

MySQLi の使用

次の例では、myDB データベースの MyGuests テーブルから id、firstname、lastname 列のデータを読み取り、ページに表示します。

Example (MySQLi - オブジェクト指向)

1

2

3

4

5

6

7

8

9

<?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 - プロセス指向)

1

2

3

4

5

6

7

8

9

10

<?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)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<?phpecho "<table style=&#39;border: solid 1px black;&#39;>";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=&#39;width:150px;border:1px solid black;&#39;>" . 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 に注意してください。注目の中国サイト。

関連する推奨事項:

PHP を使用して電子メールを送信する方法

PHP Cookie 関連の知識の理解と使用

PHP セッション キャッシュに関する関連知識の理解と使用


以上がPHP MySQL の操作とデータの読み取り方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート