SSブログ

SQLite3 INSERT後のrowid取得 [SQLite]


 データ追加後のrowidを知りたい場合があるが、SQLite3の日本語サンプルページが少ないので備忘録として記載。
$link = new SQLite3(DB_NAME);
$sql = "INSER INTO table_name(field_name1, field_name2) VALUE(field_vale1, fiels_value2) "
$result = $link->query($sql);
$last_id = $link->lastInsertRowid();

PHP SQLite3のDELETEで削除できない [SQLite]


 PHP7 + SQLite3の環境でDELETEでレコードが削除できいことがあった。SQLite3を起動して直接SQLiteコマンドを発行すると、削除ができるのでSQL文に誤りは無い。Warning: SQLite3::query(): Unable to execute statement: database is locked inのエラーが発生しているが、lockした覚え無い。
試行錯誤して色々試してみた結果、理由が良く分からないがSQL文を実行する前に結果変数をunsetすると削除できた。
var_dump($result); //追加
$sql = "DELETE FROM table_name WHERE field='".$xx."' ";
$result = $link->query($sql);

Ubuntu16でSQLiteを使用してみる [SQLite]


 Ubuntu16上のApache+PHP7でSQLite DBを使用しようとしたときのメモ。
UbuntuでもWindowsと同じようにPHPにはSQLiteがデフォルトで入っていると思い込み、
/etc/php/7.0/apache2/php.iniのextension=php_sqlite3.dllのコメント";"を外して、apache2を再起動。
$db = new SQLite3($dbname);
$result = $db->query('SELECT * FROM '.$table_name);

とするとClass SQLite3 not found のエラーを吐く。

Ubuntuは別途php用sqliteをインストールする必要があるみたい。
php7.0-sqlite3をインストール後apach2を再起動したら正常に動作するようになった。



ExcelでSQLite管理ツールを作ってみました [SQLite]

Excel VBAの勉強を兼ねてSQLite DB管理ツールを作成中です。
まだ実用レベルにはなっていなく、修正中です。
Excelの豊富な機能が使用でき大量データの編集が楽にできます。
こちらで公開中ですので、こちらもよろしく。
ただし不定期で修正しています。

Table/Field名の取得は下記のようなSQL文で取得しています。
-Table名の取得
"SELECT name FROM sqlite_master WHERE type='table';"

-Filed名の取得
"SELECT sql FROM sqlite_master WHERE tbl_name = '" & _
TableName & "' ORDER BY type DESC, name;"

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。