※現在は、この方法は推奨されていません。
※今後のセキュリティについての勉強も意味も込めて残しておきます。
このページでは、phpプログラムからデータベースにアクセスして簡単な操作を行ってみたいと思います。

下準備

phpMyAdminを使って、for_practiceという名前のテーブルを作成しました。
この方法に関してはまた別ページで解説したいと思います。
このテーブルにid(int関数、主キー)、name(varchar)、price(int)の三つの列を作ります。
以下のようなデータを入力しました。

さて、これで準備は完了です。

データベースへアクセス

まずは、phpからデータベースにアクセスします。

php

<?php
//データベースにアクセスする。
$conn=mysql_connect('localhost','root','****');
   if(!$conn){
      exit('データベースにアクセス出来ませんでした。');
}else{
      echo "データベースにアクセスしました。";
}
?>

mysql_connect()関数はSQLへ接続するための関数です。
値は左から順番に、データベースの置き場所、ユーザー名、パスワードとなっています。
また、SQLを切断する場合はmysql_close()関数を使います。
また、正常にSQLにアクセスできたかどうかを確かめるため関数を変数に格納してその作業が正常に行われなかった場合と行われた場合で表示を変えます。
このような方法をとる事によって、プログラムが正常に実行されているかを目に見える形で確認できるようになります。

データベースを選択

特定のデータベースにアクセスしていきます。

php

<?php
//データベースを選択する。
$db_selected = mysql_select_db('for_practice',$conn);
  if(!$db_selected){
     exit('for_practiceにアクセスできませんでした。');
}else{
     echo "データべースを選択しました。";
}
?>

今回の場合はあらかじめ作ったfor_practiceという名前のものにアクセスします。
mysql_select_db()関数を使用します。
上のphpを二つ並べるやり方が最も実践的な記述方法と思われます。

データベースに対して様々な要求をしてみる

SQLの実行は主に次の4つに分けられます。

SELECT 表示 
INSERT 追加
UPDATE 変更
DELETE 削除

他にも様々なクエリーが存在しますが、一番重要なのは上の4つです。

まずは、さっきの要領でデータベースにアクセスしてselectからやってみます。

SELECT

<?php
mysql_set_charset('utf-8');
//データを表示させる。
$result = mysql_query('SELECT * FROM for_practice');
if(!$result){ 
	exit('SELECTクエリー失敗');
}
while($row = mysql_fetch_assoc($result)){
	echo ('<p>');
	echo ('id='.$row['id']);
	echo ('name='.$row['name']);
	echo ('price='.$row['price']);
	echo ('</p>');
} 
?>

まずは文字コードを指定します。
次にmysql_query()関数の中にSQL文を書き込んでみます。
for_practiceから全て(*の部分)を選択して表示させるという意味です。
データベース内の全てのデータを表示させます。

INSERT

<?php
//データを追加する。
$sql = "INSERT INTO for_practice (id,name,price) VALUES(3,'バナナ',100)";
$result_flag = mysql_query($sql); 

if(!$result_flag){ 
	exit('INSERTクエリーが失敗しました。');
}else{
	echo "INSERTクエリーに成功しました。";
}
?>

少し今度はmysql_queryの中に入れる記述が長くなってしまったので$sqlという変数の中に一度格納してから関数に代入します。

まとめ

上の記述をすべて並べていき、実行をすると一度目は次のように表示されます。

1回目は、id=3が挿入されるので成功が表示されます。
2回目以降は、もうすでに挿入されているので失敗と表示されてしまいますが、データとしてSELECTの側に表示されます。




以上

最終更新:2015年08月07日 15:34