PHPCon Poland 2024

SQLite3::exec

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::execExecuta uma consulta sem resultado em um determinado banco de dados

Descrição

public SQLite3::exec(string $query): bool

Executa uma consulta sem resultado em um determinado banco de dados.

Nota: O SQLite3 pode precisar criar » arquivos temporários durante a execução de consultas, então os diretórios respectivos podem precisar ter permissão de escrita.

Parâmetros

query

A consulta SQL a ser executada (geralmente uma consulta INSERT, UPDATE ou DELETE).

Valor Retornado

Retorna true se a consulta for bem-sucedida, false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SQLite3::exec()

<?php
$db
= new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE bar (bar TEXT)');
?>

add a note

User Contributed Notes 2 notes

up
18
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.
up
2
synnus
1 year ago
<?php
$db
->exec('PRAGMA journal_mode = wal;');
$db->exec('PRAGMA synchronous = NORMAL;');
$db->exec('PRAGMA schema.taille_cache = 16000;');
?>
To Top