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;"
まだ実用レベルにはなっていなく、修正中です。
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;"