SQLite3
在线手册:中文 英文
PHP手册

SQLite3::query

(PHP 5 >= 5.3.0)

SQLite3::queryExecutes an SQL query

说明

public SQLite3Result SQLite3::query ( string $query )

Executes an SQL query, returning an SQLite3Result object if the query returns results.

参数

query

The SQL query to execute.

返回值

Returns an SQLite3Result object if the query returns results. Otherwise, returns TRUE if the query succeeded, FALSE on failure.

范例

Example #1 SQLite3::query() example

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

$results $db->query('SELECT bar FROM foo');
while (
$row $results->fetchArray()) {
    
var_dump($row);
}
?>


SQLite3
在线手册:中文 英文
PHP手册
PHP手册 - N: Executes an SQL query

用户评论:

pgarvin76 at gmail dot com (13-Jan-2011 03:31)

The notes for the return value is a little misleading to me. It states that if the query does not "return results" TRUE or FALSE is returned instead. If there is a return value for this method in your PHP code this method always returns an SQLite3Result object, even if you accidentally run an INSERT, UPDATE, DELETE, CREATE TABLE, etc query through it. The only time it returns a TRUE or FALSE is if there is no return value.

<?php
$result
= $dbh->query('CREATE TABLE ...');
if (!(
$result instanceof Sqlite3Result)) {
    echo
"Query successful."; // This will never echo.
} else {
   
$result->fetchArray(); // This will throw an error.
}

if (
$dbh->query('CREATE TABLE ...')) {
    echo
"Query successful."; // Works
} else {
    echo
"Query failed."; // Will also work
}
?>
Use exec() if you are not executing a SELECT query.