210 likes | 364 Views
KECS フォーラム 第二回実践 Web アプリケーション. ~ MySQL を用いたデータベース基礎~. 目次. MySQL の簡単な使い方 PHP から MySQL へのアクセス方法 API のサンプル. 注意 PHP のファイルは文字コード EUC-JP で保存すること. MySQL の導入. データベースの作成 テーブルの作成 テーブルへのデータ挿入 テーブルからのデータを検索 データの更新 データの削除. データベースを作成する. コマンドプロンプトで MySQL の立ち上げ
E N D
KECSフォーラム第二回実践Webアプリケーション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 • テーブルの意味 テーブルの名前:会員名簿 行 レコード 列 カラム 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); テーブル名 カラム名 挿入するデータ この要領でデータを挿入してみよう
データをテーブルから検索 • 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; カラム名を指定可能
データの削除 • DELETE文 DELETE FROM テーブル名 WHERE 条件; ex) DELETE FROM member WHERE age<=20; ※WHEREで条件を指定しなければ全てのデータが削除 • データの確認 mysql > SELECT id,last_name,age from member;
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に配列代入 (実行する度に行が移動) $row[“id”]=1 $row[“last_name”]=“永田” ・・・
文字コードについて • 主な文字コードの種類 ・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”);