- SQLiteUnbuffered::fetch
- Список параметров
- Возвращаемые значения
- Примеры
- Смотрите также
- SQLiteUnbuffered::fetch
- Список параметров
- Возвращаемые значения
- Примеры
- Смотрите также
- SQLite3Result::fetchArray
- Список параметров
- Возвращаемые значения
- User Contributed Notes 4 notes
- sqlite_fetch_array
- Description array sqlite_fetch_array ( resource result [, int result_type [, bool decode_binary]] )
- Parameters
- Return Values
- Examples
- See Also
- SQLiteUnbuffered::fetch
- Список параметров
- Возвращаемые значения
- Примеры
- Смотрите также
SQLiteUnbuffered::fetch
Выбирает следующую запись из результата запроса, заданного аргументом result . Если результат больше не содержит данных, возвращает FALSE , иначе возвращает массив, содержащий данные.
Список параметров
Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.
Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM — числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH .
Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string() . Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.
Возвращаемые значения
Возвращает массив со следующей записью в результирующем наборе, или FALSE , если следующая позиция находится за последней записью.
Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH , будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.
Примеры
Пример #1 Процедурный стиль
$dbhandle = sqlite_open ( ‘sqlitedb’ );
$query = sqlite_query ( $dbhandle , ‘SELECT name, email FROM users LIMIT 25’ );
while ( $entry = sqlite_fetch_array ( $query , SQLITE_ASSOC )) echo ‘Имя: ‘ . $entry [ ‘name’ ] . ‘ E-mail: ‘ . $entry [ ’email’ ];
>
?>?php
Пример #2 Объектно-ориентированный стиль
$dbhandle = new SQLiteDatabase ( ‘sqlitedb’ );
?php
$query = $dbhandle -> query ( ‘SELECT name, email FROM users LIMIT 25’ ); // буферизованный результирующий набор
$query = $dbhandle -> unbufferedQuery ( ‘SELECT name, email FROM users LIMIT 25’ ); // небуферизованный результирующий набор
while ( $entry = $query -> fetch ( SQLITE_ASSOC )) echo ‘Имя: ‘ . $entry [ ‘name’ ] . ‘ E-mail: ‘ . $entry [ ’email’ ];
>
?>
Смотрите также
- sqlite_array_query() — Выполняет запрос к базе данных и возвращает результат в виде массива
- sqlite_fetch_string() — Псевдоним sqlite_fetch_single
SQLiteUnbuffered::fetch
Выбирает следующую запись из результата запроса, заданного аргументом result . Если результат больше не содержит данных, возвращает FALSE , иначе возвращает массив, содержащий данные.
Список параметров
Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.
Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM — числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH .
Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string() . Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.
Возвращаемые значения
Возвращает массив со следующей записью в результирующем наборе, или FALSE , если следующая позиция находится за последней записью.
Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH , будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.
Примеры
Пример #1 Процедурный стиль
$dbhandle = sqlite_open ( ‘sqlitedb’ );
$query = sqlite_query ( $dbhandle , ‘SELECT name, email FROM users LIMIT 25’ );
while ( $entry = sqlite_fetch_array ( $query , SQLITE_ASSOC )) echo ‘Имя: ‘ . $entry [ ‘name’ ] . ‘ E-mail: ‘ . $entry [ ’email’ ];
>
?>?php
Пример #2 Объектно-ориентированный стиль
$dbhandle = new SQLiteDatabase ( ‘sqlitedb’ );
?php
$query = $dbhandle -> query ( ‘SELECT name, email FROM users LIMIT 25’ ); // буферизованный результирующий набор
$query = $dbhandle -> unbufferedQuery ( ‘SELECT name, email FROM users LIMIT 25’ ); // небуферизованный результирующий набор
while ( $entry = $query -> fetch ( SQLITE_ASSOC )) echo ‘Имя: ‘ . $entry [ ‘name’ ] . ‘ E-mail: ‘ . $entry [ ’email’ ];
>
?>
Смотрите также
- sqlite_array_query() — Выполняет запрос к базе данных и возвращает результат в виде массива
- sqlite_fetch_string() — Псевдоним sqlite_fetch_single
SQLite3Result::fetchArray
Выбирает одну строку из результирующего набора и помещает её в ассоциативный или нумерованный массив, или в оба сразу. По умолчанию создаёт массивы обоих видов.
Список параметров
- SQLITE3_ASSOC : возвращает ассоциативный массив, в котором индекс соответствует имени столбца в результирующем наборе.
- SQLITE3_NUM : возвращает индексированный массив, в котором индекс соответствует номеру столбца в результирующем наборе, начиная с 0.
- SQLITE3_BOTH : возвращает индексированный массив, в котором индекс соответствует имени и номеру столбца в результирующем наборе, начиная с 0.
Возвращаемые значения
Возвращает стоку из результирующего набора в виде ассоциированного или нумерованного массива, или обоих. Если строк больше нет, возвращает false .
Типы значений возвращаемого массива преобразуются из типов SQLite3 по следующим правилам: целые числа преобразуются в int если помещаются в диапазон PHP_INT_MIN .. PHP_INT_MAX , иначе в строки. Рациональные числа преобразуются в float , NULL в null , строки и BLOB в строки.
User Contributed Notes 4 notes
Would just like to point out for clarification that each call to fetchArray() returns the next result from SQLite3Result in an array, until there are no more results, whereupon the next fetchArray() call will return false.
HOWEVER an additional call of fetchArray() at this point will reset back to the beginning of the result set and once again return the first result. This does not seem to explicitly documented, and caused me my own fair share of headaches for a while until I figured it out.
$returned_set = $database -> query ( «select query or whatever» );
//Lets say the query returned 3 results
//Normally the following while loop would run 3 times then, as $result wouldn’t be false until the fourth call to fetchArray()
while( $result = $returned_set -> fetchArray ()) //HOWEVER HAVING AN ADDITIONAL CALL IN THE LOOP WILL CAUSE THE LOOP TO RUN AGAIN
$returned_set -> fetchArray ();
>
?>
Basically, in the above code fetchArray will return:
1st call | 1st result from $returned_set (fetchArray() call from while condition)
2nd call | 2nd result (fetchArray() call from while block)
3rd call | 3rd result (fetchArray() call from while condition)
4th call |FALSE (fetchArray() call from while block)
5th call | 1st result (fetchArray() call from while condition)
.
This will cause (at least in this case) the while loop to run infinitely.
Check with SQLite3Result::numColumns() for an empty result before calling SQLite3Result::fetchArray().
In contrast to the documentation SQLite3::query() always returns a SQLite3Result instance, not only for queries returning rows (SELECT, EXPLAIN). Each time SQLite3Result::fetchArray() is called on a result from a result-less query internally the query is executed again, which will most probably break your application.
For a framwork or API it’s not possible to know in before whether or not a query will return rows (SQLite3 supports multi-statement queries). Therefore the argument «Don’t execute query(‘CREATE . ‘)» is not valid.
// select all information from table «algorithm»
$results= $db->query(«select * from algorithm»);
//Create array to keep all results
$data= array();
// Fetch Associated Array (1 for SQLITE3_ASSOC)
while ($res= $results->fetchArray(1))
//insert row into array
array_push($data, $res);
//you can return a JSON array
echo json_encode($data);
To loop through a record set:
$db = new SQLite3 ( ‘auth.sqlite’ );
$sql = «SELECT user_id, username, opt_status FROM tbl_user» ;
$result = $db -> query ( $sql ); //->fetchArray(SQLITE3_ASSOC);
while( $res = $result -> fetchArray ( SQLITE3_ASSOC ))
if(!isset( $res [ ‘user_id’ ])) continue;
$row [ $i ][ ‘user_id’ ] = $res [ ‘user_id’ ];
$row [ $i ][ ‘username’ ] = $res [ ‘username’ ];
$row [ $i ][ ‘opt_status’ ] = $res [ ‘opt_status’ ];
sqlite_fetch_array
Description 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.
Parameters
The SQLite result resource. This parameter is not required when using the object-oriented method.
The optional result_type parameter accepts a constant and determines how the returned array will be indexed. Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers). SQLITE_BOTH will return both associative and numerical indices. SQLITE_BOTH is the default for this function.
When the decode_binary parameter is set to TRUE (the default), PHP will decode the binary encoding it applied to the data if it was encoded using the sqlite_escape_string() . You should normally leave this value at its default, unless you are interoperating with databases created by other sqlite capable applications.
Return Values
Returns an array of the next row from a result set; FALSE if the next position is beyond the final row.
The column names returned by SQLITE_ASSOC and SQLITE_BOTH will be case-folded according to the value of the sqlite.assoc_case configuration option.
Examples
Example 1. Procedural example
Example 2. Object-oriented example
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']; >?>
See Also
sqlite_array_query() |
sqlite_fetch_string() |
SQLiteUnbuffered::fetch
Выбирает следующую запись из результата запроса, заданного аргументом result . Если результат больше не содержит данных, возвращает FALSE , иначе возвращает массив, содержащий данные.
Список параметров
Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.
Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM — числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH .
Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string() . Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.
Возвращаемые значения
Возвращает массив со следующей записью в результирующем наборе, или FALSE , если следующая позиция находится за последней записью.
Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH , будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.
Примеры
Пример #1 Процедурный стиль
$dbhandle = sqlite_open ( ‘sqlitedb’ );
$query = sqlite_query ( $dbhandle , ‘SELECT name, email FROM users LIMIT 25’ );
while ( $entry = sqlite_fetch_array ( $query , SQLITE_ASSOC )) echo ‘Имя: ‘ . $entry [ ‘name’ ] . ‘ E-mail: ‘ . $entry [ ’email’ ];
>
?>?php
Пример #2 Объектно-ориентированный стиль
$dbhandle = new SQLiteDatabase ( ‘sqlitedb’ );
?php
$query = $dbhandle -> query ( ‘SELECT name, email FROM users LIMIT 25’ ); // буферизованный результирующий набор
$query = $dbhandle -> unbufferedQuery ( ‘SELECT name, email FROM users LIMIT 25’ ); // небуферизованный результирующий набор
while ( $entry = $query -> fetch ( SQLITE_ASSOC )) echo ‘Имя: ‘ . $entry [ ‘name’ ] . ‘ E-mail: ‘ . $entry [ ’email’ ];
>
?>
Смотрите также
- sqlite_array_query() — Выполняет запрос к базе данных и возвращает результат в виде массива
- sqlite_fetch_string() — Псевдоним sqlite_fetch_single