Since SQLite3Result::numRows is unavailable, use:
<?php
if ($res->numColumns() && $res->columnType(0) != SQLITE3_NULL) {
// have rows
} else {
// zero rows
}
?>
Because when there are zero rows:
* SQLite3Result::fetchArray will return '1'
* SQLite3Result::numColumns will return '1'
* Column type for column '0' will be SQLITE3_NULL
PHP.mk документација
SQLite3Result
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
class.sqlite3result.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
class.sqlite3result.php
SQLite3Result
Референца за `class.sqlite3result.php` со подобрена типографија и навигација.
Класата SQLite3Result
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Вовед
Класа што управува со множества резултати за екстензијата SQLite 3.
Синопсис на класата
Содржина
- SQLite3Result::columnName — Враќа име на n-тата колона
- SQLite3Result::columnType — Враќа тип на n-тата колона
- SQLite3Result::__construct — Конструира SQLite3Result
- SQLite3Result::fetchArray — Презема ред со резултати како асоцијативен или нумерички индексиран список или и двете
- SQLite3Result::finalize — Го затвора множеството резултати
- SQLite3Result::numColumns — Враќа број на колони во множеството резултати
- SQLite3Result::reset — Го ресетира множеството резултати на првиот ред
Белешки од корисници 5 белешки
jonscully на gmail точка com ¶
пред 16 години
sameers точка public на gmail точка com ¶
пред 11 години
According to http://www.php.net/manual/en/sqlite3result.columntype.php, and also per my experience, columnType() doesn't return anything other than SQLITE3_NULL. Consequently, the test suggested in the comment that tries to identify whether a column is NULL is incorrect.
The right thing to do appears to be to test if ($result->fetchArray())[0] == null.
jan на bootfinder точка co точка uk ¶
пред 11 години
I use the following code to get num_rows:
<?php
...
$nrows = 0;
$result->reset();
while ($result->fetchArray())
$nrows++;
$result->reset();
return $nrows;
...
?>
atesin () 6m4i1 ! com ¶
пред 5 години
in response to jan at bootfinder dot co dot uk (comment #115891) about getting num_rows...
how about (not tested)... ?
<?php // do cleans before and after if needed
for ( $nrows = 0; isarray($result->fetchArray()); ++$nrows );
return $nrows;
?>
alan71-at-free-fr ¶
пред 15 години
Here's a snippet that might help you to write a fetchObject function that is also missing:
<?php
function fetchObject($sqlite3result, $objectType = NULL) {
$array = $sqlite3result->fetchArray();
if(is_null($objectType)) {
$object = new stdClass();
} else {
// does not call this class' constructor
$object = unserialize(sprintf('O:%d:"%s":0:{}', strlen($objectType), $objectType));
}
$reflector = new ReflectionObject($object);
for($i = 0; $i < $sqlite3result->numColumns(); $i++) {
$name = $sqlite3result->columnName($i);
$value = $array[$name];
try {
$attribute = $reflector->getProperty($name);
$attribute->setAccessible(TRUE);
$attribute->setValue($object, $value);
} catch (ReflectionException $e) {
$object->$name = $value;
}
}
return $object;
}
?>
Heavily inspired of Bergmann's Object Freezer :
https://github.com/sebastianbergmann/php-object-freezer/blob/master/Object/Freezer.php