sqlite_array_query

(PHP 5)

sqlite_array_query

(no version information, might be only in CVS)

SQLiteDatabase->arrayQuery -- Execute a query against a given database and returns an array

说明

array sqlite_array_query ( resource dbhandle, string query [, int result_type [, bool decode_binary]] )

array sqlite_array_query ( string query, resource dbhandle [, int result_type [, bool decode_binary]] )

Object oriented style (method):

class SQLiteDatabase {

array arrayQuery ( string query [, int result_type [, bool decode_binary]] )

}

sqlite_array_query() executes the given query and returns an array of the entire result set. It is similar to calling sqlite_query() and then sqlite_fetch_array() for each row in the result set. sqlite_array_query() is significantly faster than the aforementioned.

提示: sqlite_array_query() is best suited to queries returning 45 rows or less. If you have more data than that, it is recommended that you write your scripts to use sqlite_unbuffered_query() instead for more optimal performance.

参数

query

The query to be executed.

dbhandle

The SQLite Database resource; returned from sqlite_open () when used procedurally. This parameter is not required when using the object-oriented method.

result_type

可选的 result_type 参数接受一个常量并决定返回的数组如何索引。用 SQLITE_ASSOC 只会返回关联索引(有名称字段)而 SQLITE_NUM 只会返回数字索引(有序字段数)。SQLITE_BOTH 会同时返回关联和数字索引。 SQLITE_BOTH 是本函数的默认值。

decode_binary

decode_binary 参数设为 TRUE(默认值)时,PHP 将解码那些由 sqlite_escape_string() 编码的数据。通常应保留此值为其默认值,除非在操作其它支持 sqlite 程序建立的数据库时。

注: 为兼容其它数据库(例如 MySQL),支持另两种替代的语法。推荐用第一种,dbhandle 参数作为函数的第一个参数。

返回值

Returns an array of the entire result set; FALSE otherwise.

SQLITE_ASSOCSQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

范例

例子 1. Procedural style

<?php
$dbhandle
= sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach (
$result as $entry) {
    echo
'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

例子 2. Object-oriented style

<?php
$dbhandle
= new SQLiteDatabase('sqlitedb');
$result = $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach (
$result as $entry) {
    echo
'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>


add a note add a note User Contributed Notes
kendlj at NOSPAM dot web dot de
18-Apr-2005 07:21
Do not use this code, whenever you may get no result:

<?
$return_data
=@sqlite_array_query($query,$databaseHandle);
if(!
$return_data)
{
  
//Errorhandling code
  
die( sqlite_error_string( sqlite_last_error($this->databaseHandle) ) );
}
?>

It will execute the Errorhandling code although there is no error, cause if there is nothing found, sqlite_array_query returns an empty array, which is interpreted as 'false' here.
You will get an Message like:
'not an error'

Instead use:

<?
$return_data
=@sqlite_array_query($query,$databaseHandle);
if(
$return_data===false)
{
  
//Errorhandling code
}
?>