略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: SQLite3::exec

2024-11-15

SQLite3::exec

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

SQLite3::execExecutes a result-less query against a given database

说明

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

Executes a result-less query against a given database.

注意: SQLite3 may need to create » temporary files during the execution of queries, so the respective directories may have to be writable.

参数

query

The SQL query to execute (typically an INSERT, UPDATE, or DELETE query).

返回值

Returns true if the query succeeded, false on failure.

范例

示例 #1 SQLite3::exec() example

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

$db->exec('CREATE TABLE bar (bar TEXT)');
?>
add a noteadd a note

User Contributed Notes 1 note

up
16
alexandre dot schmidt at gmail dot com
6 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.

官方地址:https://www.php.net/manual/en/sqlite3.exec.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3