ibase_connect(PHP 3>= 3.0.6, PHP 4) ibase_connect - открывает соединение с БД InterBase. Описаниеint ibase_connect (string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]]) Устанавливает соединение с InterBase-сервером. Аргумент database
должен быть правильным путём к файлу БД на сервере, на котором он находится.
Если сервер не является локальным, он обязан иметь префикс 'hostname:'
(TCP/IP) '//hostname/' (NetBEUI), или 'hostname@' (IPX/SPX), в зависимости
от используемого протокола соединения. Если делается второй вызов ibase_connect() с теми же аргументами, новая ссылка не устанавливается, но возвращается идентификатор уже открытой ссылки. Ссылка на сервер будет закрыта сразу же по окончании работы скрипта, если она не будет закрыта до этого явным образом путём вызова ibase_close().
См. также ibase_pconnect(). |
||||||||||
|
||||||||||
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 != "") {
|
| |