sqlite_fetch_array

(PHP 5)

sqlite_fetch_array

(no version information, might be only in CVS)

SQLiteResult->fetch

(no version information, might be only in CVS)

SQLiteUnbuffered->fetch -- Fetches the next row from a result set as an array

说明

array sqlite_fetch_array ( resource result [, int result_type [, bool decode_binary]] )

Object oriented style (method):

class SQLiteResult {

array fetch ( [int result_type [, bool decode_binary]] )

}class SQLiteUnbuffered {

array fetch ( [int result_type [, bool decode_binary]] )

}

Fetches the next row from the given result handle. If there are no more rows, returns FALSE, otherwise returns an associative array representing the row data.

参数

result

The SQLite result resource. 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 程序建立的数据库时。

返回值

Returns an array of the next row from a result set; FALSE if the next position is beyond the final row.

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

范例

例子 1. Procedural example

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

例子 2. Object-oriented example

<?php
$dbhandle
= new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // buffered result set
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // unbuffered result set

$result = $query->fetchAll(SQLITE_ASSOC);
foreach (
$result as $entry) {
    echo
'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>


add a note add a note User Contributed Notes
saleh at sfsj dot net
10-May-2004 09:12
[Editor's note: to get short column names there's an undocumented PRAGMA setting. You can exec "PRAGMA short_column_names = ON" to force that behavior.]

I noticed that if you use Joins in SQL queries, the field name is messed up with the dot!
for example if you have this query:
SELECT n.*, m.nickname FROM news AS n, members AS m WHERE n.memberID = m.id;

now if you want to print_r the results returned using SQLITE_ASSOC type, the result array is like this :
array
(
  [n.memberID] => 2
  [n.title] => test title
  [m.nickname] => NeverMind
  [tablename.fieldname] => value
)

and I think it looks horriable to use the variable ,for example, $news['m.nickname'] I just don't like it!

so I've made a small function that will remove the table name (or its Alias) and will return the array after its index is cleaned
<?php
function CleanName($array)
{
  foreach (
$array as $key => $value) {
  
//if you want to keep the old element with its key remove the following line
    
unset($array[$key]);

  
//now we clean the key from the dot and tablename (alise) and set the new element
    
$key = substr($key, strpos($key, '.')+1);
    
$array[$key] = $value;
  }
  return
$array;
}
?>