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

mysqli_result::fetch_object

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

mysqli-result.fetch-object.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека mysqli-result.fetch-object.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
mysqli_result::fetch_object

Референца за `mysqli-result.fetch-object.php` со подобрена типографија и навигација.

mysqli-result.fetch-object.php

mysqli_result::fetch_object

mysqli_fetch_object

класата mysqli_driver

mysqli_result::fetch_object -- mysqli_fetch_objectFetch the next row of a result set as an object

= NULL

Напиши целосна ознака на елемент

public mysqli_result::fetch_object(string $class Преземи го следниот ред од множеството резултати како објект, array $constructor_args = []): object|null|false

Процедурален стил

mysqli_fetch_object(mysqli_result $result, string $class Преземи го следниот ред од множеството резултати како објект, array $constructor_args = []): object|null|false

= "stdClass" null ако нема повеќе редови.

Презема еден ред податоци од множеството резултати и го враќа како објект, каде што секој атрибут го претставува името на колоната од множеството резултати. Секое последователно повикување на оваа функција ќе го врати следниот ред во множеството резултати, или mysqli_fetch_row() Ако две или повеќе колони од резултатот имаат исто име, последната колона ќе има предност и ќе ги презапише сите претходни податоци. За пристап до повеќе колони со исто име,

Забелешка: може да се користи за преземање на нумерички индексирана низа, или алијаси може да се користат во списокот за избор на SQL прашањето за да им се дадат различни имиња на колоните.

Забелешка: Имињата на полињата вратени од оваа функција се case-sensitive.

Забелешка: Оваа функција ги поставува NULL полињата на PHP null value.

Параметри

result

објектот како свој прв аргумент. mysqli_result Само процедурален стил: А mysqli_query(), mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result().

class

Името на класата за инстанцирање, поставување на својствата и враќање. Ако не е специфицирано, се враќа stdClass објект.

constructor_args

Опционален array параметри за поминување до конструкторот за class objects.

Вратени вредности

Оваа функција ги поставува атрибутите на објектот пред да го повика конструкторот на објектот. null Враќа објект што го претставува преземениот ред, каде што секој атрибут го претставува името на колоната од множеството резултати, false при неуспех.

Errors/Exceptions

А ValueError се фрла кога constructor_args не е празно со класа што нема конструктор.

Дневник на промени

Верзија = NULL
8.3.0 Сега фрла ValueError исклучок кога constructor_args не е празно со класа што нема конструктор; претходно Исклучок беше фрлен.
8.0.0 constructor_args сега прифаќа [] ако нема повеќе редови во множеството резултати, или

Примери

Пример #1 за конструктори со 0 параметри; претходно беше фрлена исклучок. example

Напиши целосна ознака на елемент

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

while (
$obj = $result->fetch_object()) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

Процедурален стил

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($link, $query);

while (
$obj = mysqli_fetch_object($result)) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

mysqli_result::fetch_object()

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Види Исто така

  • mysqli_fetch_array() - Преземи го следниот ред од множеството резултати како асоцијативна, нумеричка низа, или и двете
  • mysqli_fetch_assoc() - Преземи го следниот ред од множеството резултати како асоцијативна низа
  • mysqli_fetch_column() - Преземи еден столб од следниот ред од множеството резултати
  • mysqli_fetch_row() - Преземи го следниот ред од множеството резултати како нумеричка низа
  • mysqli_query() - Извршува прашање на базата на податоци
  • mysqli_data_seek() - Го прилагодува покажувачот на резултатот на произволен ред во резултатот

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

Driek
пред 13 години
As indicated in the user comments of the mysql_fetch_object, it is important to realize that class fields get values assigned to them BEFORE the constructor is called.
For example;
<?php

class Employee
{
  private $id;

  public function __construct($id = 0)
  {
    $this->id = $id;
  }
}

// some code for creating a database connection... i.e. mysqli object
....
$result = $con->query("select id, name from employees");
$anEmployee = $result->fetch_object("Employee");
?>
will result in the ID being 0 because it is overridden by the constructor. Therefore, it is useful to check if the class field is already set.
I.e.
<?php
class Employee
{
  private $id;

  public function __construct($id = 0)
  {
    if (!$this->id)
    {
       $this->id = $id 
    }
  }
}
?>
Also note that the fields which will be assigned by fetch_object are case sensitive. If your table has the field "ID", it will result in the class field $ID being set. A simple work-around is to use aliases. I.e. "SELECT *, ID as id FROM myTable"
I hope this helps some people.
neo22s at gmail dot com
пред 9 години
Since 5.6.21 and PHP 7.0.6

mysqli_fetch_object() sets the properties of the object AFTER calling the object constructor. Not BEFORE as was in previous versions.

So behaviour has changed. Seems a bug but not sure if was done intentionally.

https://bugs.php.net/bug.php?id=72151
object-array at gmail dot com
пред 10 години
Please mind the difference between objects and arrays in PHP>=5: arrays are by value while objects are by reference.

<?
$o = mysqli_fetch_object($res);
$o1 = $o;
$o1->value = 10;

$a = mysqli_fetch_array($res);
$a1 = $a;
$a1['value'] = 10;

echo $o->value; // 10
echo $a['value']; // (original value from db)
?>

Should same behaviour be intended, the object needs to be cloned:

<?
$o1 = clone $o;
?>

More about object cloning:
http://php.net/manual/en/language.oop5.cloning.php
макол на paypal точка ком
пред 9 години
Note that if you supply a class that has a __set() magic method defined in it, that method will be called for any properties that are not defined in your class.  For example:

<?php

class SomeClass {
    private $id;
    public $partner_name;
    public function __set( $name, $value ) {
        echo "__set was called!  Name = $name\n";
        $this->$name = $value;
    }
}

$db = new mysqli( 'localhost', 'Username', 'Password', 'DbName' );
$result = $db->query( 'SELECT id, partner_name, partner_type FROM submissions' );
$object = $result->fetch_object( 'SomeClass' );

?>

Produces the following output:

__set was called!  Name = partner_type
бенпптунг на tacol точка биз
пред 16 години
I don't know why no one talk about this.
fetch_object is very powerful since you can instantiate an Object which has the methods you wanna have.

You can try like this..

<?php
class PowerfulVO extends AbstractWhatEver {

    public $field1;
    private $field2; // note : private is ok

    public function method(){
       // method in this class
    }
}

     $sql = "SELECT * FROM table ..."
     $mysqli = new mysqli(........);
     $result = $mysqli->query($sql);
     $vo = $result->fetch_object('PowerfulVO');
?>

Note : if the field is not defined in the class, fetch_object will add this field for you as public.

The method is very powerful, especially if you want to use a VO design pattern or class mapping feature with Flex Remoting Object( Of course, you need to have ZendAMF or AMFPHP ..framework)

Hope this help and open new possibilities for you
На оваа страница

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

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

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

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

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