©
Ce document utilise Manuel du site Web PHP chinois Libérer
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_array_query -- SQLiteDatabase::arrayQuery — Execute a query against a given database and returns an array
$dbhandle
, string $query
[, int $result_type
= SQLITE_BOTH
[, bool $decode_binary
= true
]] )$query
, resource $dbhandle
[, int $result_type
= SQLITE_BOTH
[, bool $decode_binary
= true
]] )面向对象风格 (method):
$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.
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' ];
}
?>
[#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_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:
<?php
$return_data=@sqlite_array_query($query,$databaseHandle);
if($return_data===false)
{
//Errorhandling code
}
?>