Функции Язык программирования PHP

ibase_fetch_object

(PHP 3>= 3.0.7, PHP 4)

ibase_fetch_object - получает объект из БД InterBase.

Описание

object ibase_fetch_object (int result_id)

Извлекает ряд как псевдообъект из result_id, полученного функцией ibase_query() или ibase_execute().
<php 
$dbh = ibase_connect ($host, $username, $password); $stmt = 'SELECT * FROM tblname'; 
$sth = ibase_query ($dbh, $stmt); while ($row = ibase_fetch_object ($sth)) { print 
$row->email . "\n"; } ibase_close ($dbh); ?>

Последующий вызов ibase_fetch_object() возвратит следующий ряд результирующего набора или FALSE, если рядов больше нет.

См. также ibase_fetch_row().


Назад Оглавление Вперёд
ibase_execute Вверх ibase_fetch_row

Типы выражений

PHP/FI 2.0 использовал левую часть выражения для определения того, какого типа должно быть выражение.
PHP 3.0 учитывает обе части при определении типа результата, и это может вызвать другое поведение 2.0-скриптов в 3.0.

Рассмотрим пример:
$a[0]=5; $a[1]=7; $key = key($a); while ("" != $key) { echo "$keyn"; 
next($a); }

В PHP/FI 2.0 этот код выведет оба индекса $a. В PHP 3.0 вообще ничего не будет выведено. Причина в том, что в PHP 2.0 тип левого аргумента был string/строка, было сделано сравнение строк, "" не равно "0", и цикл выполнялся. В PHP 3.0, когда string сравнивается с integer, выполняется целочисленное сравнение (string конвертируется в integer). Это даёт сравнение atoi(""), равного 0, и variablelist, которое также равно 0, и поскольку 0==0, цикл не выполняется ни разу.

Исправить это просто. Замените оператор while на:
while 
((string)$key != "") {