文字

sqlite_fetch_array

SQLiteResult::fetch

SQLiteUnbuffered::fetch

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

sqlite_fetch_array -- SQLiteResult::fetch -- SQLiteUnbuffered::fetchFetches the next row from a result set as an array

说明

array sqlite_fetch_array ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

面向对象风格 (method):

array SQLiteResult::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

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

返回值

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

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

范例

Example #1 Procedural example

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

Example #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

while ( $entry  $query -> fetch ( SQLITE_ASSOC )) {
    echo 
'Name: '  $entry [ 'name' ] .  '  E-mail: '  $entry [ 'email' ];
}
?>

参见

  • sqlite_array_query() - Execute a query against a given database and returns an array
  • sqlite_fetch_string() - 别名 sqlite_fetch_single

用户评论:

[#1] saleh at sfsj dot net [2004-05-09 18:12:50]

[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($keystrpos($key'.')+1);
      
$array[$key] = $value;
  }
  return 
$array;
}
?>

上一篇: 下一篇: