PHP+MYSQLのメモ書き。

ぼちぼちテキスト書き出しじゃなくてデータベース使ってみたいなと思い、PHPMYSQLを使ってみる事に。

WordPressなりMovableTypeなりOpenPNEなりでMYSQLの設定はした事あっても、コード書いた事はなく前知識ゼロで望んだら泣いた。

1日触ってたら何となくやりたい事ができる様になったのでメモ。

基本的に

// MYSQL接続
$db = mysql_connect($DB_HOST, $DB_USER, $DB_PASS);
// DB選択
mysql_select_db($DB_NAME, $db);
// クエリ実行
$res = mysql_query($sql);	// $sql : SQL文
// 接続を実行
mysql_close($db);

こんな感じでいけるが、SQL文てのが全く分からなかったので苦戦。

/* Example */

// データ格納
// フィールドは省略化
$sql = "INSERT INTO テーブル名 (フィールド名1, フィールド名2, ...) VALUES ('データ1', 'データ2', ...)";

// データ閲覧
// フィールドに*で全部
$sql = "SELECT フィールド名 FROM テーブル名 (WHERE〜)";

// データ更新
$sql = "UPDATE テーブル名 SET フィールド = 'データ' WHERE〜";

とかこんな感じで良いらしい。
WHEREはまんまどこをどうすんの的な感じ。テーブル名infoのid=2のaddressをsaitamaに更新とかだったら、

$sql = "UPDATE info SET address = 'saitama' WHERE id = '2'";

SELECT文の後、mysql_fetch_row()関数を使えば配列にデータが取り出せるので色々できる。

$res = mysql_query("SELECT * FROM info");
$num = mysql_num_rows($res);		// 件数
for($i = 0; $i < $num; $i++) {
	$row = mysql_fetch_row($res);	// $rowに1行分のデータが入る
	// その後の処理...
}

SELECT文で指定すれば、欲しいデータだけ取り出せるので勝手が良い。

あとハマったと言えば、文字コード関係。

"mysql 文字化け"やら、"phpmyadmin 文字化け"とか検索するとまぁ引っ掛かる。

例に漏れずハマった訳だけど、データベースがUTF-8でコードをShiftJISで書いてたので結果として

mysql_query("SET NAMES sjis");

とかやってあげればOKだった。

参考:
http://www.artful.jp/blog/archives/2006/07/xamppmysqlphpmy.html



後から読んで分かるかしら。