DX推進をサポートする情報サイト

 お問い合わせ 
プロフィール

初心者向けWebサイト、データベース入門

TOP >初心者向けWebサイト、データベース入門 >2. 3 PHPからDBを操作

PHPからDBを操作

2023-05-02 (更新日:2023-05-02)

1)DBへの接続

PHPからDBへの接続を行います。
						<?php
							//DBへの接続
							$conn = mysqli_connect('localhost','root','******','sales') or die("er 接続できません。");
						?>
						
mysqli_connect('localhost','root','******',''sales'); これがPHPからMySQLに接続するコマンドです。
ただし、実際にはこのような書き方はせず下記のように変数を使ってき記述します。
						<?php
							$host = 'localhost';	//サーバ名
							$user = 'root';			//ユーザ名
							$pass = '********';		//DBのパスワード
							$dbnm = 'sales';		//データベース名
							
							//DBへの接続
							$conn = mysqli_connect($host,$user,$pass,$dbnm) or die("er 接続できません。");
						?>
						

<解説>
 このコマンドは、()内に記載されている情報でMySQLに接続しなさいというコマンドです。
dieとは、接続できなったときに()内のメッセージを表示させます。
 PHPの記述は必ず<?php ~ ?>で囲まれてます。よってファイルは<?phpで始まり?>で終わります。
また、HTML文もPHPの中で記述していきます。
 PHPでは変数を多用します。変数は必ず$で始まり次の文字は必ずアルファベットとなります。アルファベットのあとは数字が使えます。 例)$a、$a1、$ABC等々   $1aは使えません。
なぜ変数を使うかは、取り扱うデータが多く便利だからです。学習している間にご理解頂けるかと思います。
$connのコマンドも変数かしてます。都度SQLにコマンドを送る際必ず接続が必要となるのでたった$connで記述が済みます。
 あと、プログラム内に // と記述ありますが、これはコメントアウトといい // 以降の行内の文字はプログラムでは無視させる記述となります。 // 以外に # も使えます。複数行にまたがる場合は
/*
.......
.....
......
*/
にように /* ...... */ で囲みます。囲まれている記述はプログラムとして認識しません。

2)DBからデータを取り出し表示させる

 PHPにてDBへの接続を行います。
mysqli_connect('localhost','root','******',''sales'); これがPHPからMySQLに接続するコマンドです。
ただし、実際にはこのような書き方はせず下記のように変数を使ってき記述します。

サンプルプログラム:customerlist2_3.php
						<?php
							$host = 'localhost';	//サーバ名
							$user = 'root';			//ユーザ名
							$pass = '********';		//DBのパスワード
							$dbnm = 'sales';		//データベース名
							
							//DBへの接続
							$conn = mysqli_connect($host,$user,$pass,$dbnm) or die("er 接続できません。");
							//データの抽出
							$sql = "select customerCode,customerName from customer_list where customerCode = 10001;";
							$res = mysqli_query($conn,$sql) or die("エラー $sql");
							$row = mysqli_fetch_array($res);
								$customerCode = $row["customerCode"];
								$customerName = $row["customerName"];
								
								echo "得意先情報:".$customerCode."/".$customerName;
						?>
						

<解説>
・select文について
customerCodeが10001の得意先名がブラウザに表示されます。
$sql = "select customerCode,customerName from customer_list where customerCode = 10001;";
$sqlに上記SQLのselect文を代入。mysqli_queryにてDBへ接続し$resに代入。 その代入された結果をmysqli_fetch_arrayにて取り出せるよう$rowに代入。
結果、$rowにの中にある["customerCode"]にカラム名customerCode代入され["customerName"]に
カラム名customerNameのデータが代入される。
なにかまわりくどいようですが、
・SQL文を記述     
・SQL文を実行     mysqli_query
・実行結果を取り出す  mysqli_fetch_array
まずは、この3つをワンセットとして覚えてください。
変数の$row["*********"]ですが、一つの変数の中に複数のデータを格納できる配列形式で、別途他の章で説明します。

echo文について
echo はブラウザに表示させます。
今回では、得意先情報:得意先コード/得意先名 を表示させています。
"得意先情報:"は、"から次の"までに囲われている文字を、「 . 」はその後、変数を$customerCodeをつなげ、 「 . 」にて"から"に囲まれいる「 / 」をつなげ、「 . 」にて$customerNameをつなげてます。
わかりずらいので下記の例を記します。
例)echo "得意先情報:"; → 得意先情報: を表示
  echo "得意先情報:"."得意先名"; → 得意先情報:得意先名 を表示
  $a = "得意先情報:"."得意先名";
  echo $a;  → 得意先情報:得意先名 を表示
  $customerCode = 10001;   ※数値のみは"から"の囲みは不必要です。
  $custometName = "ABC株式会社"   ;
  $a = $customerCode.$customerName;
  echo $a;  → 得意先情報:10001ABC株式会社 を表示
  $a = $customerCode."&".$customerName;
  echo $a;  → 得意先情報:10001&ABC株式会社 を表示
ドット「 . 」は文字や変数をつなぎます。

次に上記サンプルプログラムをコピペし、新しくファイル名をcustomerlist5.phpにして、c:\xampp\htdocs\の配下に格納してください。
コピペの後忘れず$pass = '********'; のパスワードを記述のこと
拡張子は、customerlist.phpです。
ご自分のブラウザより http://localhost/customerlist2_3.php にアクセスして表示される画面を確認ください。


 このように表示されましたか?

<うまく表示されなかった方へ>
下記を確認ください。
①Apache、Mysqlが起動してますか?
②ファイル名は間違ってませんか?customerlist.php
③格納先は間違ってませんか?c:\xampp\htdocs\
④DBパスワードを記述してますか?$pass = '********'; そのままでは?
******に設定したDBのパスワードを記述
⑤4.DBの基本操作の2)の⑦データ作成してますか?
MariaDB [sales]> insert into customer_list(customerCode,customerName,pref,address1,address2) values (10001,'ABC株式会社','東京','東京都港区芝1-1-1','芝ビル10階');


得意先一覧として表示させます。