2008/10/21

[php]sqliteのselect文実行について

講義で、sqliteを使っているのですが、guiでコントロールできるツールがないので、自作してみようかと模索中で、その中で、カラム名を取得する必要があったので、調べてみました。

ぐぐってみるとall aboutですごくためになる記事を発見!!

SQLiteに接続するPHPプログラム作成 05というコラムで、select文発行時の一連の流れみたいのがあったので、そちらを参考にさせていただきました。

基本的には、以下のような流れです。


/* db オープン */
$db = sqlite_open("./hoge.db");
/* sql文実行 下の$sql変数は、sql文*/
$result = sqlite_query($db, $sql);
/* 検索結果の合計数の取得 */
$recordcount = sqlite_num_rows($result);
/* カラム数を取得する */
$cols = sqlite_num_fields($result);

/* カラム数分ループを行う(0番目スタートに注意) */
for($i=0; $i<$cols; $i++){
sqlite_field_name($result,$i)
}

/* データを出力 */
for($i=0; $i<$recordcount; $i++){
/* 1行フェッチする */
$currentrow = sqlite_fetch_array($a_qRet);
/* カラム数分ループを行う */
for($k=0; $k<$cols; $k++){
$currentrow[$k];
}
}

pl/sqlで似たような処理を行うときがあるので、妙にしっくりする構成です。

phpは、リストや構造体より配列に主を置いている感じをうけるので、これでいいのかなと自己完結。

4 件のコメント:

  1. sqliteなっつかし!
    まだsqlite使ってるんだねー。
    俺が使ってた頃はてんでダメだった
    けど今は使い勝手向上してるのかな?

    返信削除
  2. >まだsqlite使ってるんだねー。

    satoさんの時も、sqlite使ってたんだ。

    >けど今は使い勝手向上してるのかな?

    sqlite2を使っているんだけど、wikipediaにあるように小規模程度の開発ならいけるような気がする。

    返信削除
  3. 確かスキーマを1ファイルとしてコピーしたりできるんだよね・・・

    あれは便利だと感じた。大規模開発だと重すぎて無理だろうけどもー。

    返信削除
  4. >確かスキーマを1ファイルとしてコピーしたりできるんだよね・・・

    そうそう、バックアップのしやすさは本当にいいよね。

    返信削除