KECSフォーラム 第二回実践Webアプリケーション ~MySQLを用いたデータベース基礎~ 目次 • MySQLの簡単な使い方 • PHPからMySQLへのアクセス方法 • APIのサンプル 注意 PHPのファイルは文字コード EUC-JPで保存すること MySQLの導入 • • • • • • データベースの作成 テーブルの作成 テーブルへのデータ挿入 テーブルからのデータを検索 データの更新 データの削除 データベースを作成する • コマンドプロンプトでMySQLの立ち上げ 「スタート」→「MySQL Server ○○」→「MySQL Command Line Client」 • 新規ユーザの作成 mysql > GRANT ALL PRIVILEGES ON sampledb.* TO sample@localhost IDENTIFIED BY ‘password’; • データベースの作成 mysql > create database sampledb; テーブルの作成 1 • データベースを確認する mysql > show databases; • ログアウト mysql > \q • 通常のコマンドプロンプトを起動 し作成したユーザでMySQL起動 C\: mysql –u sample –p sampledb Enter password ********* mysql > テーブルの作成 2 • テーブルの意味 テーブルの名前:会員名簿 名前 住所 1件目 年齢 行 2件目 3件目 4件目 5件目 列 カラム or フィールド 職業 レコード テーブルの作成 3 • テーブルの作成 mysql > CREATE TABLE member ( id MEDIUMINT NOT NULL AUTO_INCREMENT, last_name VARCHAR(50), first_name VARCHAR(50), age TINYINT UNSIGNED, PRIMARY KEY(id) ); • 作成したテーブルの確認 mysql > show tables; • 作成したテーブルの項目(フィールド)確認 mysql > show fields from member; テーブルへのデータ挿入 • データ挿入(INSERT文の発行) mysql > INSERT INTO member ( last_name, first_name, age ) VALUE(‘永田’,‘俊信’, 18); テーブル名 挿入するデータ カラム名 この要領でデータを挿入してみよう id last_name first_name Age 1 永田 俊信 18 2 林 隆 23 3 佐藤 明美 40 データをテーブルから検索 • SELECT文 <項目を全て検索し出力する> SELECT * FROM テーブル名; ex) mysql > SELECT * FROM member; • WHERE句 <条件を指定し、検索し出力する> SELECT * FROM テーブル名 WHERE 条件式; ex) mysql > SELECT * FROM member where age<30; データの更新 • UPDATE文 UPDATE テーブル名 SET カラム名 = “更新データ” where 条件; ex) UPDATE member SET age=19 where id=1; ※WHEREで条件を指定しなければ全てのデータが更新 • データの確認 mysql > SELECT id,last_name,age from member; カラム名を指定可能 id last_name Age 1 永田 19 2 林 23 3 佐藤 40 データの削除 • DELETE文 DELETE FROM テーブル名 WHERE 条件; ex) DELETE FROM member WHERE age<=20; ※WHEREで条件を指定しなければ全てのデータが削除 • データの確認 mysql > SELECT id,last_name,age from member; id last_name Age 2 林 23 3 佐藤 40 PHPからのデータベース接続 • PHPの設定ファイルの変更 • MySQL関数の利用方法 PHPの設定 • PHP.iniの変更 C:\WINDOWS\php.iniを編集 ;extension=php_mysql.dll から「;」を消す • Apacheの再起動 タスクトレイのApacheをクリックしRestart • <?php phpinfo(); ?>を実行し確認 MySQL Support が enabled になってるか MySQLへ接続 • mysql_connect関数を利用 dbtest1.php ------------------------------------------<?php $con = mysql_connect("localhost", "sample", "password") or die("接続できません。"); print "接続に成功しました。"; パスワード mysql_close($con); ユーザ名 ?> ------------------------------------------------------------------------- データベースへ接続 • Mysql_select_db関数 dbtest2.php ------------------------------------------<?php $con = mysql_connect("localhost", "sample", "password") or die("接続できません。"); print "接続に成功しました。"; mysql_select_db("sampledb") データベース名 or die("データベース接続エラー"); ?> -------------------------------------------------------------------------- SQL文の発行(データ挿入) • 変数にSQL文を格納しmysql_queryで実行 <dbtest2.phpに以下を追加> $sql = <<<EOS INSERT INTO member(last_name,first_name,age) VALUE(‘田中’,‘一郎’,‘21’) EOS; $res=mysql_query($sql, $con) or die(“sqlエラー”); SQL文の発行(データ抽出) <?php $con = mysql_connect("localhost", "sample", "password") or die("接続できません。"); print "接続に成功しました。"; mysql_select_db("sampledb") or die("データベース接続エラー"); print "データベースに接続しました。"; $sql = 'select * from sampledb. member'; $res = mysql_query($sql, $con) or die("データ抽出エラー"); while ($row = mysql_fetch_array($res, MYSQL_ASSOC) ) { print "<hr> | "; foreach($row as $key=>$value){ //print mb_convert_encoding($value, 'EUC-JP', 'SJIS') ."|"; print $value."|"; } } 結果が一行ずつ返っ mysql_close($con); てくる ?> SQL文の発行(データ抽出) $row = mysql_fetch_array($res, MYSQL_ASSOC); ⇒一行の結果を$rowに配列代入 (実行 する度 に行が 移動) id last_name first_name Age 1 永田 俊信 18 2 林 隆 23 3 佐藤 明美 40 $row[“id”]=1 $row[“last_name”]=“永田” ・・・ APPENDIX 文字コードについて • 主な文字コードの種類 ・EUCコード(EUC-JP) //データベース等 ・シフトJIS(SJIS) //Windows, IEのdefault ・Unicode(UTF-8) //linux ブログ等 ・文字コード変換関数の利用 //$str1をShift-JISからEUC-JPへ変換したものを$str2へ代入 $str2= mb_convert_encoding($str1,”EUC-JP”,”SJIS”);
© Copyright 2024 ExpyDoc