PHP+MYSQLのメモ書き。
ぼちぼちテキスト書き出しじゃなくてデータベース使ってみたいなと思い、PHPでMYSQLを使ってみる事に。
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
後から読んで分かるかしら。