Mysqlnd user handler plugin (
mysqlnd_uh
)
2711
mysqlnd_uh will be called. The functions installed by PECL/mysqlnd_uh are the methods of the built-in
classes.
The built-in PHP classes and their methods do nothing but call their
mysqlnd
C library counterparts, to
behave exactly like the original
mysqlnd
function they replace. The code below illustrates in pseudo-
code what the extension does.
Example 20.330. Pseudo-code: what a built-in class does
class MysqlndUhConnection {
public function connect(($conn, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
MYSQLND* c_mysqlnd_connection = convert_from_php_to_c($conn);
...
return call_c_function(mysqlnd_conn__connect(c_mysqlnd_connection, ...));
}
}
The build-in classes behave like a transparent proxy. It is possible for you to replace the proxy with
your own. This is done by subclassing
MysqlndUhConnection
or
MysqlndUhPreparedStatement
to extend the functionality of the proxy, followed by registering a new proxy object. Proxy objects are
installed by
mysqlnd_uh_set_connection_proxy
and
mysqlnd_uh_set_statement_proxy
.
Example 20.331. Installing a proxy
<?php
class proxy extends MysqlndUhConnection {
public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
$ret = parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
printf("%s returns %s\n", __METHOD__, var_export($ret, true));
return $ret;
}
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
?>
The above example will output:
proxy::connect(array (
0 => NULL,
1 => 'localhost',
2 => 'root',
3 => '',
4 => 'test',
5 => 3306,
6 => NULL,
7 => 131072,
))
proxy::connect returns true
20.7.8.4.3. Installing a proxy
Copyright 1997-2012 the PHP Documentation Group. [2230]
The extension provides two built-in classes:
MysqlndUhConnection
and
MysqlndUhPreparedStatement
. The classes are used for hooking
mysqlnd
library calls. Their
methods correspond to
mysqlnd
internal functions. By default they act like a transparent proxy and do
Содержание 5.0
Страница 1: ...MySQL 5 0 Reference Manual ...
Страница 18: ...xviii ...
Страница 60: ...40 ...
Страница 396: ...376 ...
Страница 578: ...558 ...
Страница 636: ...616 ...
Страница 844: ...824 ...
Страница 1234: ...1214 ...
Страница 1426: ...MySQL Proxy Scripting 1406 The following diagram shows an overview of the classes exposed by MySQL Proxy ...
Страница 1427: ...MySQL Proxy Scripting 1407 ...
Страница 1734: ...1714 ...
Страница 1752: ...1732 ...
Страница 1783: ...Configuring Connector ODBC 1763 ...
Страница 1793: ...Connector ODBC Examples 1773 ...
Страница 1839: ...Connector Net Installation 1819 2 You must choose the type of installation to perform ...
Страница 1842: ...Connector Net Installation 1822 5 Once the installation has been completed click Finish to exit the installer ...
Страница 1864: ...Connector Net Visual Studio Integration 1844 Figure 20 24 Debug Stepping Figure 20 25 Function Stepping 1 of 2 ...
Страница 2850: ...2830 ...
Страница 2854: ...2834 ...
Страница 2928: ...2908 ...
Страница 3000: ...2980 ...
Страница 3122: ...3102 ...
Страница 3126: ...3106 ...
Страница 3174: ...3154 ...
Страница 3232: ...3212 ...