SQLite3::exec
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::exec — 指定したデータベースに、結果を返さないクエリを実行する
説明
指定したデータベースに、結果を返さないクエリを実行します。
注意: SQLite3 は、クエリの実行中に » 一時ファイル を作る必要があるかもしれません。 よって、それぞれのディレクトリは書き込み可能でなければならない可能性があります。
パラメータ
query
-
実行したい SQL クエリ (通常は INSERT、UPDATE あるいは DELETE クエリ)。
例
例1 SQLite3::exec() の例
<?php
$db = new SQLite3('mysqlitedb.db');
$db->exec('CREATE TABLE bar (bar TEXT)');
?>
+add a note
User Contributed Notes 2 notes
alexandre dot schmidt at gmail dot com ¶
8 years ago
I was getting "database locked" all the time until I found out some features of sqlite3 must be set by using SQL special instructions (i.e. using PRAGMA keyword). For instance, what apparently solved my problem with "database locked" was to set journal_mode to 'wal' (it is defaulting to 'delete', as stated here: https://www.sqlite.org/wal.html (see Activating And Configuring WAL Mode)).
So basically what I had to do was creating a connection to the database and setting journal_mode with the SQL statement. Example:
<?php
$db = new SQLite3('/my/sqlite/file.sqlite3');
$db->busyTimeout(5000);
// WAL mode has better control over concurrency.
// Source: https://www.sqlite.org/wal.html
$db->exec('PRAGMA journal_mode = wal;');
?>
Hope that helps.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google