2009/04/24

PHPからMySQLを操作する

ようやくPHPから操作する時がきた!

■PHPスクリプトでMySQLサーバーに接続する
|sample|
+-----------------------------------------------------------------------+
<?php
$s=mysql_connect("localhost","root","1234") or die("失敗です");
print "成功しました";
mysql_close($s);
?>
+-----------------------------------------------------------------------+
mysql_connect(サーバー名,ユーザー名,パスワード)
接続に成功すると、「データベース接続の値」を返す
失敗すると、「false」を返す

or die(メッセージ)
()内を表示して、スクリプトの実行を中止する(=exit())

mysql_close(データベース接続の値)
切断に成功すると、「true」
失敗すると、「false」を返す


■PHPスクリプトでクエリを発行する
|sample|
+-----------------------------------------------------------------------+
<?php
$s=mysql_connect("localhost","root","1234") or die("失敗です");
print "成功しました";
mysql_select_db("db1",$s);
mysql_query("INSERT INTO tb1 VALUES('K777','PHP太郎',20);
mysql_close($s);
?>
+-----------------------------------------------------------------------+
mysql_select_db(データベース名,データベース接続の値)
データベースを指定する
mysql_query(SQL文)
SQL文を発行する
(※SQL文のデリミタはつけない、「"」「'」を入れ子で使うかヒアドキュメントを使用)


■PHPでSQL文の実行結果を受け取る
$re=mysql_query("SELECT * FROM tb1);で
print $re;としても、mysql_queryの返す値が単純な文字列でないため結果が実行できない!

mysql_fetch_array(結果)
SQLコマンドの結果を配列として得る
呼び出すときは、while文を使って
while($kekka=mysql_fetch_array($re)){
print $kekka[0];
・・・
}
とするとよい。

|point|
mysql_queryで実行されるクエリで、エラーが起こった場合、
mysql_query(・・・) or die(mysql_error());
でエラーの内容を表示できる


データベースに存在するテーブルの一覧を取得する
mysql_list_tables(データベース名,データベース接続の値):
|sample|
+-----------------------------------------------------------------------+
<?php
$s=mysql_connect("localhost","root","1234") or die("失敗です");
$re=mysql_list_tables("db1",$s);
while($kekka=mysql_fetch_array($re)){
print $kekka[0];
print "
";
}
mysql_close($s);
?>
+-----------------------------------------------------------------------+

2 件のコメント:

  1. 注意すること:

    □コンソールでmysqlコマンドが操作不能
    →cd c:\xampp\mysql\bin
    →パスワードは正しいか?

    □文字化けする
    →PHPスクリプトに文字コードの指定をする

    返信削除
  2. □新規スレッドがINSERTできない
    →そもそも違うデータベースにスレッド用のテーブルを用意していた

    返信削除