PHP.mk документација

SQLite3Result

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

class.sqlite3result.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека class.sqlite3result.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
SQLite3Result

Референца за `class.sqlite3result.php` со подобрена типографија и навигација.

class.sqlite3result.php

Класата SQLite3Result

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Вовед

Класа што управува со множества резултати за екстензијата SQLite 3.

Синопсис на класата

class SQLite3Result {
/* Методи */
private __construct()
public columnName(int $column): string|false
public columnType(int $column): int|false
public finalize(): true
public numColumns(): int
public reset(): bool
}

Содржина

Белешки од корисници 5 белешки

jonscully на gmail точка com
пред 16 години
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
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
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.