Spec-Zone .ru
спецификации, руководства, описания, API

22.9.8.9. Функции Mysqlnd_uh

Copyright 1997-2012 PHP Documentation Group.

22.9.8.9.1. mysqlnd_uh_convert_to_mysqlnd

Copyright 1997-2012 PHP Documentation Group.

  • mysqlnd_uh_convert_to_mysqlnd

    Преобразовывает дескриптор соединения MySQL в mysqlnd дескриптор соединения

Описание

resource mysqlnd_uh_convert_to_mysqlnd(mysqli mysql_connection);

Преобразовывает дескриптор соединения MySQL в mysqlnd дескриптор соединения. После преобразования можно выполниться, mysqlnd библиотека обращается к дескриптору соединения. Это может привыкнуть к доступу mysqlnd функциональность, не сделанная доступный через вызовы API пространства пользователя.

Функция может быть отключена с mysqlnd_uh.enable. Если mysqlnd_uh.enable устанавливается в FALSE функция не будет устанавливать прокси и всегда возвращаться TRUE . Дополнительно, ошибка типа E_WARNING может быть испущен. Сообщение об ошибке может читать как PHP Warning: mysqlnd_uh_convert_to_mysqlnd(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. You are not allowed to call this function [...].

Параметры

MySQL connection handle

Дескриптор соединения MySQL типа mysql, mysqli или PDO_MySQL.

Возвращаемые значения

mysqlnd дескриптор соединения.

Журнал изменений

Версия Описание
5.4.0 mysql_connection параметр может теперь иметь тип mysql, PDO_MySQL, или mysqli. Прежде, толькоmysqli тип был позволен.

Примеры

Пример 22.391. mysqlnd_uh_convert_to_mysqlndпример

<?php/* PDO user API gives no access to connection thread id */$mysql_connection = new PDO("mysql:host=localhost;dbname=test", "root", "");/* Convert PDO MySQL handle to mysqlnd handle */$mysqlnd = mysqlnd_uh_convert_to_mysqlnd($mysql_connection);/* Create Proxy to call mysqlnd connection class methods */$obj = new MySQLndUHConnection();/* Call mysqlnd_conn::get_thread_id */var_dump($obj->getThreadId($mysqlnd));/* Use SQL to fetch connection thread id */var_dump($mysql_connection->query("SELECT CONNECTION_ID()")->fetchAll());?>    

Вышеупомянутый пример выведет:

int(27054)array(1) {  [0]=>  array(2) {    ["CONNECTION_ID()"]=>    string(5) "27054"    [0]=>    string(5) "27054"  }}

См. Также

mysqlnd_uh.enable

22.9.8.9.2. mysqlnd_uh_set_connection_proxy

Copyright 1997-2012 PHP Documentation Group.

  • mysqlnd_uh_set_connection_proxy

    Устанавливает прокси для mysqlnd соединений

Описание

bool mysqlnd_uh_set_connection_proxy(MysqlndUhConnection connection_proxy,
mysqli mysqli_connection);

Устанавливает объект прокси сцепить методы объектов соединения mysqlnd. После того, как установленный, прокси будет использоваться для всех соединений MySQL, открытых с mysqli, mysql или PDO_MYSQL, предполагая, что перечисленные расширения компилируются, чтобы пользоваться mysqlnd библиотекой.

Функция может быть отключена с mysqlnd_uh.enable. Если mysqlnd_uh.enable устанавливается в FALSE функция не будет устанавливать прокси и всегда возвращаться TRUE . Дополнительно, ошибка типа E_WARNING может быть испущен. Сообщение об ошибке может читать как PHP Warning: mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Параметры

connection_proxy

Объект прокси типа MysqlndUhConnection.

mysqli_connection

Объект типа mysqli. Если дано, прокси будет установлен для этого определенного соединения только.

Возвращаемые значения

Возвраты TRUE на успехе. Иначе, возвраты FALSE

Примеры

Пример 22.392. mysqlnd_uh_set_connection_proxyпример

<?php$mysqli = new mysqli("localhost", "root", "", "test");$mysqli->query("SELECT 'No proxy installed, yet'");class proxy extends MysqlndUhConnection { public function query($res, $query) {   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));   $ret = parent::query($res, $query);   printf("%s returns %s\n", __METHOD__, var_export($ret, true));   return $ret; }}mysqlnd_uh_set_connection_proxy(new proxy());$mysqli->query("SELECT 'mysqlnd rocks!'");$mysql = mysql_connect("localhost", "root", "", "test");mysql_query("SELECT 'Ahoy Andrey!'", $mysql);$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");$pdo->query("SELECT 'Moin Johannes!'");?>    

Вышеупомянутый пример выведет:

proxy::query(array (  0 => NULL,  1 => 'SELECT \'mysqlnd rocks!\'',))proxy::query returns trueproxy::query(array (  0 => NULL,  1 => 'SELECT \'Ahoy Andrey!\'',))proxy::query returns trueproxy::query(array (  0 => NULL,  1 => 'SELECT \'Moin Johannes!\'',))proxy::query returns true

См. Также

mysqlnd_uh_set_statement_proxy
mysqlnd_uh.enable

22.9.8.9.3. mysqlnd_uh_set_statement_proxy

Copyright 1997-2012 PHP Documentation Group.

  • mysqlnd_uh_set_statement_proxy

    Устанавливает прокси для mysqlnd операторов

Описание

bool mysqlnd_uh_set_statement_proxy(MysqlndUhStatement statement_proxy);

Устанавливает прокси для mysqlnd операторов. Объект прокси будет использоваться для всего mysqlnd подготовленные объекты оператора, независимо какое расширение MySQL PHP (mysqli, mysql, PDO_MYSQL) создало их, пока расширение компилируется, чтобы пользоваться mysqlnd библиотекой.

Функция может быть отключена с mysqlnd_uh.enable. Если mysqlnd_uh.enable устанавливается в FALSE функция не будет устанавливать прокси и всегда возвращаться TRUE . Дополнительно, ошибка типа E_WARNING может быть испущен. Сообщение об ошибке может читать как PHP Warning: mysqlnd_uh_set_statement_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Параметры

statement_proxy

mysqlnd оператор проксирует объект типа MysqlndUhStatement

Возвращаемые значения

Возвраты TRUE на успехе. Иначе, возвраты FALSE

См. Также

mysqlnd_uh_set_connection_proxy
mysqlnd_uh.enable