文字

sqlite_array_query

SQLiteDatabase::arrayQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_array_query -- SQLiteDatabase::arrayQueryExecute a query against a given database and returns an array

说明

array sqlite_array_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array sqlite_array_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

面向对象风格 (method):

public array SQLiteDatabase::arrayQuery ( string $query [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

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.

Tip

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.

Data inside the query should be properly escaped.

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() 编码后的二进制数据。通常应保留此值为其默认值,除非要与其他使用 SQLlite 的应用程序建立的数据交互。

Note: 为兼容其他数据库扩展(比如 MySQL),支持两种可替代的语法。推荐第一种格式,函数的第一个参数是dbhandle

返回值

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

SQLITE_ASSOC SQLITE_BOTH 返回的列名会依照 sqlite.assoc_case 配置选项的值决定大小写。

范例

Example #1 过程化风格

<?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' ];
}
?>

Example #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' ];
}
?>

参见

  • sqlite_query() - Executes a query against a given database and returns a result handle
  • sqlite_fetch_array() - Fetches the next row from a result set as an array
  • sqlite_fetch_string() - 别名 sqlite_fetch_single

用户评论:

[#1] kendlj at NOSPAM dot web dot de [2005-04-18 04:21:59]

Do not use this code, whenever you may get no result:

<?php
$return_data
=@sqlite_array_query($query,$databaseHandle);
if(!
$return_data)
{
   
//Errorhandling code
   
die( sqlite_error_stringsqlite_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:

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

上一篇: 下一篇: