LoginSignup
6
5

More than 5 years have passed since last update.

【初心者向け入門】PHPからMySQLを利用する

Last updated at Posted at 2019-03-17

1. はじめに

PHPからMySQLへ接続し,ブラウザ上にデータベースの内容を表示する.
例として,商品表を扱う.

前提条件

  • MAMPが起動済み(PHPとMySQLの利用が可能である)
  • データベースtestが作成済み
  • テーブルshouhinが作成済み
  • サーバはlocalhostとする
  • MySQLのユーザ名とパスワードはともにrootとする(mampのMySQLにおけるデフォルトのもの)

PHPでのエラーチェック

PHPでエラーが発生した際にブラウザ画面に表示する関数を記載しておく.
ただし,表示されないエラーもあるため注意すること.

<?php
    ini_set('display_errors',1);
?>

参考

2. 内容

2.1. データ

テーブル shouhin には以下のデータが登録されている.
numと列hinmeiはTEXT型,列kakakuはINTEGER型である.

num hinmei kakaku
010 pc 80000
011 display 35000
020 printer 25000
025 keyboard 1000
030 mouse 3000

2.2. ソースコード

2.2.1. 先頭1行目のデータを表示

showtable.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>商品表</title>
    <style></style>
</head>
<body>
    <?php
        //MySQLのデータベースサーバへ接続(サーバ名,接続ユーザ名,パスワード,データベース名 の順に指定)
        $link=mysqli_connect("localhost","root","root","test");

        //SQL文を指定
        $query="SELECT * FROM shouhin";

        //PHPからSQL文を実行(接続名 $link に対して $query のSQL文を実行)
        //結果は$resultに格納される
        $result=mysqli_query($link,$query);

        //$result から1行取り出して,1項目ごとに配列 $row (フィールド名をキーとした連想配列)に格納
        $row=mysqli_fetch_assoc($result);

        //$row 配列の中身を表示
        echo "番号:".$row['num']."<br>";
        echo "品名:".$row['hinmei']."<br>";
        echo "価格:".$row['kakaku']."<br>";
    ?>
</body>
</html>

2.2.2. 全データを表示

showtable.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>商品表</title>
    <style>
            table,th,td {
                border-collapse:collapse;
                border:1px solid black;
                line-height:1.5;
            }
        </style>
</head>
<body>
    <h1>商品表</h1>
    <?php
        $link=mysqli_connect("localhost","root","root","test");
        $query="SELECT * FROM shouhin";
        $result=mysqli_query($link,$query);

        echo "<table>";
        echo "<tr bgcolor=#87cefa>
                  <th>番号</th>
                  <th>品名</th>
                  <th>価格</th>
              </tr>";
        while($row=mysqli_fetch_assoc($result)){
            echo "<tr>
                      <td>{$row['num']}</td>
                      <td>{$row['hinmei']}</td>
                      <td>{$row['kakaku']}</td>
                  </tr>";
        }
        echo "</table>";
    ?>
</body>
</html>

※関数はmysql_・・・ではなくmysqli_・・・であることに注意
※本来はtry-catch文で例外(MySQLへ正常に接続できなかった場合)を考慮するが,分かりやすくするためにあえて例外を考慮しない
※区別しやすくするためにあえて字下げしている.タグごとにecho文で分けても良い.

全てを1つのecho文にまとめた例と分けた時の例を下に示す.どちらも同じ意味を持つ.

<?php
    echo "<div><p>あいうえお</p></div>";
?>
<?php
    echo "<div>";
    echo "<p>";
    echo "あいうえお";
    echo "</p>";
    echo "</div>";
?>

3. おわりに

さらに,

  • データ登録画面
  • データ削除画面
  • データ更新(編集)画面
  • hinmeikakakuの絞り込み検索機能(表示画面に追加)

などがあると便利ですね.気が向いたら記事を作成します.
プログラムは既に作成してあるんですけどね・・・.

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5