SQLite3::exec

(PHP 5 >= 5.3.0)

SQLite3::execEjecutar una consulta que no devuelve resultados en una base de datos dada

Descripción

public bool SQLite3::exec ( string $query )

Ejecuta una consulta que no devuelve resultados en una base de datos dada.

Parámetros

query

La consulta SQL a ejecutar (típicamente una consulta INSERT, UPDATE, o DELETE).

Valores devueltos

Devuelve TRUE si la consulta tuvo éxito, FALSE en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de SQLite3::exec()

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

$bd->exec('CREATE TABLE bar (bar STRING)');
?>

add a note add a note

User Contributed Notes 5 notes

up
8
gamag
1 year ago
SQLite needs to create some temp-files (journals...) to execute certain statements, so php needs write-permission in your db-directory.
up
3
Rob Haverkort
1 year ago
Actually, sqlite creates a journal-file when changing data and so it needs the write-permissions in the directory.
up
0
namibj
30 days ago
If you use WAL (Write-Ahead Log) (link to sqlite doc for this: http://sqlite.org/wal.html ), it needs write acces because of the implementation of multi-thread access to one db. You can turn it off, if you do not want to give the dir write access, but you can also create a certain file it needs (see the link for a description, as it is explained very well there) that you need write access to and you may get away using WAL without giving write accesss to the dir.
up
0
moodsey211 at gmail dot com
3 years ago
If you get the error message saying "SQLite3::exec. database locked." You just need to define a busyTimeout to work around this.
up
-5
info at tellmatic dot org
1 year ago
IMPORTANT! just a note:

weird behaviour when doing an exec on a sqlite db!!!

if want to execute a query on a sqlite db with exec, and your dbfile already was e.g. mode 777, and you get some php errors saying

"SQLite3::exec(): unable to open database file in ...."

and you get crazy while debugging, just add write üermissions to the whole directory for the user the webserver/php runs.

this behaviour makes absolutely NO sense, and is a source of frustration.
at least a more meaningful errormessage would be nice.
i couldnt figure out why sqlite needs write permissions for the whole dir instead of only one file. this is stupid and must be a bug!
(to be secure you have to create a directory with write permissions only for php/apache)
To Top