Пример кода:
$db = 'localhost:C:\...path...\dbname.fdb';
$username = 'SYSDBA';
$password = 'masterkey';
// Подключение к БД
$dbhandle = ibase_connect($db, $username, $password) or die ("error in db connect");
$status = ($dbhandle != '');
if ($status) {
$sql = 'SELECT * FROM table_name';
// Выполняем запрос
$rc = ibase_query($dbhandle, $sql);
echo "rc: ".$rc."]<br><br>";
// Получаем результат построчно в виде объекта
while ($row = ibase_fetch_object($rc)) {
echo $row->FIELD_NAME."<br>";
}
// Освобождаем хэндл связанный с результатом запроса
ibase_free_result($rc);
// Освобождаем хэндл связанный с подключением
ibase_close($dbhandle);
}
Если в списке полей выборки присутствует поле типа BOOLEAN
, то получаю предупреждение
Warning: ibase_fetch_object(): Incorrect values within SQLDA structure empty pointer to data at SQLVAR index 5 in D:...\test.php on line 33
и никаких данных... Собственно вопрос, как обратиться к BOOLEAN
полю? В Менеджере DB запрос отрабатывается корректно.
Вы пытаетесь выбрать поле с типом BOOLEAN
. Суть в том, что этот тип появился гораздо позднее, чем произошло отделение FireBird от Interbase. Как следствие этот тип имеет разные идентификаторы и разную структуру в IB и FB.
Для Interbase этот тип имеет код 590, занимает два байта и может принимать значения FALSE
, TRUE
В Firebird тип имеет код 32764, занимает один байт и принимает значения FALSE
, TRUE
, UNKNOWN
.
Расширение php_interbase.dll
предназначено для работы с Interbase и, соответственно, ничего о типе 32764 не знает.
Варианты решения проблемы
php_pdo_firebird.dll
php_firebird.dll
. Может кто-то занимался портированием php_interbase.dll
под новые версии Firebirdphp_interbase.dll
, но тогда отказаться от всего специфического для Firebird функционалаВиртуальный выделенный сервер (VDS) становится отличным выбором
В приложении в контроллере user есть несколько экшнов, каждый из которых получает из запроса параметр user_id и по нему ищет пользователя в бдОтсюда...
В чем разница include() и require(), а также include_once() и require_once()? Не могу понять
Вычитываю JSON ответ, в нем много мерный массив, делаю это так :