ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Базы данных. Часть Пятнадцатая.


24-03-2015

17.5. ODBC
Открытый интерфейс доступа к базам данных (Open Database Connectivity, ODBC) стал промышленным стандартом обмена данными с базами данных. Модель здесь очень проста. Для использования ODBC API было разработано клиентское программное обеспечение. Изготовители разрабатывают драйверы, работающие с этим API на стороне клиента и работающие непосредственно с базой данных на стороне сервера. Это позволяет разработчикам программных приложений создавать приложения, которые могут работать с различными базами данных путем простой замены драйвера, который является внешним файлом.
ODBC использует SQL в качестве языка общения с любой базой данных, даже когда база данных не является реляционной. Microsoft предлагает драйверы, которые позволяют создавать запросы для работы с текстовыми файлами и рабочими книгами Excel. Первоначально об ODBC лучше всего узнать на узле, предназначенном для разработчиков Microsoft, - <http://msdn.microsoft.com/>. 
Microsoft определенное время предлагала бесплатные ODBC-драйверы, но только для своих операционных систем. ODBC-драйверы для ОС Unix достать труднее. Многие из разработчиков баз данных также предлагают свои драйверы, кроме того, на рынке есть еще и третьи игроки: такие компании, как Intersolv, продают оптимизированные драйверы как для Windows, так и для Unix.
Многие базы данных позволяют осуществлять доступ к ним из PHP как через "родные" драйверы, так и через ODBC-драйверы. Есть также множество баз данных, доступ к которым осуществляется из PHP только через ODBC, например СУБД Solid и Empress.
В создании расширения, работающего с ODBC, принимали участие разработчики Стиг Баккен (Stig Bakken), Андреас Караджаннис (Andreas Karajannis) и Франк Кроман (Frank Kromann).
boolean odbc_autocommit(resource connection, boolean on)
Функция odbc_autocommit (листинг 17.21) задает автоматическое выполнение команд ODBC. По умолчанию она активна. Аргументом connection является целое число, возвращаемое функцией odbc_connect или odbc_pconnect. Эта функция используется в зависимости от ситуации, так как не все ODBC-драйверы поддерживают работу операторов commit и rollback.

I Листинг 17.21. Функция odbc_autocommit_
<?php
// подключиться к базе данных
$Link = odbc_connect("inventory", "guest", "guest"); //отключить режим auto-commit odbc_autocommit($Link, FALSE);
?>

boolean odbc_binmode(resource result, integer mode)
Функция odbc_binmode (листинг 17.22) задает способ возврата данных двоичными столбцами для результирующего набора. Когда драйвер возвращает двоичные данные, каждый байт представляется шестнадцатеричными кодами. По умолчанию PHP преобразует эти коды в двоичные данные. Если необходимо использовать функцию odbc_longreadlen для задания максимальной длины значений данных типа long, отличного от нуля, можно задать один из режимов, приведенных в табл. 17.10. Если максимальная длина чтения равна нулю, данные в любом случае преобразуются в двоичные.
Базы данных
Листинг 17.22. Функция odbc_binmode

<?php
//получить из базы данных GIF-файл и переслать его в браузер // подключиться к базе данных
$Connection = odbc_connect("inventory", "admin", "secret"); // выполнить запрос
$Query = "SELECT Data " . "FROM Picture " .
"WHERE ID=2 "; $Result = odbc_do($Connection, $Query);
//установить режим binmode для пересылки двоичных данных
odbc_binmode($Result, ODBC_BINMODE_PASSTHRU);
//установить режим longreadlen // для ответа браузеру odbc_longreadlen($Result, 0);
// принять первую строку и проигнорировать остальные odbc_fetch_row($Result);
//отправить заголовок в браузер так, чтобы он "знал", что имеет формат GIF
header("Content-type: image/gif"); // получить картинку odbc_result($Result, 1);
?>

odbc_close(resource connection)
Функция odbc_close (листинг 17.23) предназначена для закрытия соединения с базой данных. Если имеют место открытые транзакции к соединению, то возвращается ошибка и это соединение не закрывается.
Базы данных

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Базы данных. Часть Четырнадцатая. PHP. Базы данных. Часть Шестнадцатая.