Copyright 1997-2012 the PHP Documentation Group.
Copyright 1997-2012 the PHP Documentation Group.
mysqlnd_uh_convert_to_mysqlnd
Converts a MySQL connection handle into a mysqlnd connection handle
Description
resource mysqlnd_uh_convert_to_mysqlnd(mysqli mysql_connection);Converts a MySQL connection handle into a mysqlnd connection handle. After conversion you can execute mysqlnd library calls on the connection handle. This can be used to access mysqlnd functionality not made available through user space API calls.
The function can be disabled with
mysqlnd_uh.enable.
If
mysqlnd_uh.enable
is set to
FALSE
the function will not install the proxy and always return
TRUE
. Additionally, an error of the type
E_WARNING may be emitted. The error message
may read like 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 [...].
Parameters
MySQL connection handle
A MySQL connection handle of type mysql, mysqli or PDO_MySQL.
Return Values
A mysqlnd connection handle.
Changelog
| Version | Description |
|---|---|
| 5.4.0 | The mysql_connection parameter can now be of type
mysql,
PDO_MySQL, or
mysqli. Before, only the
mysqli type was allowed. |
Examples
Example 20.388. mysqlnd_uh_convert_to_mysqlnd
example
<?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());
?>
The above example will output:
int(27054)
array(1) {
[0]=>
array(2) {
["CONNECTION_ID()"]=>
string(5) "27054"
[0]=>
string(5) "27054"
}
}
See Also
mysqlnd_uh.enable
|
Copyright 1997-2012 the PHP Documentation Group.
mysqlnd_uh_set_connection_proxy
Installs a proxy for mysqlnd connections
Description
bool mysqlnd_uh_set_connection_proxy(MysqlndUhConnection connection_proxy,
mysqli mysqli_connection);Installs a proxy object to hook mysqlnd's connection objects methods. Once installed, the proxy will be used for all MySQL connections opened with mysqli, mysql or PDO_MYSQL, assuming that the listed extensions are compiled to use the mysqlnd library.
The function can be disabled with
mysqlnd_uh.enable.
If
mysqlnd_uh.enable
is set to
FALSE
the function will not install the proxy and always return
TRUE
. Additionally, an error of the type
E_WARNING may be emitted. The error message
may read like 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
[...].
Parameters
connection_proxy
A proxy object of type
MysqlndUhConnection.
mysqli_connection
Object of type mysqli. If given, the
proxy will be set for this particular connection only.
Return Values
Returns
TRUE
on success. Otherwise, returns
FALSE
Examples
Example 20.389. mysqlnd_uh_set_connection_proxy
example
<?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!'");
?>
The above example will output:
proxy::query(array ( 0 => NULL, 1 => 'SELECT \'mysqlnd rocks!\'', )) proxy::query returns true proxy::query(array ( 0 => NULL, 1 => 'SELECT \'Ahoy Andrey!\'', )) proxy::query returns true proxy::query(array ( 0 => NULL, 1 => 'SELECT \'Moin Johannes!\'', )) proxy::query returns true
See Also
mysqlnd_uh_set_statement_proxy
|
mysqlnd_uh.enable
|
Copyright 1997-2012 the PHP Documentation Group.
mysqlnd_uh_set_statement_proxy
Installs a proxy for mysqlnd statements
Description
bool mysqlnd_uh_set_statement_proxy(MysqlndUhStatement statement_proxy);Installs a proxy for mysqlnd statements. The proxy object will be used for all mysqlnd prepared statement objects, regardless which PHP MySQL extension (mysqli, mysql, PDO_MYSQL) has created them as long as the extension is compiled to use the mysqlnd library.
The function can be disabled with
mysqlnd_uh.enable.
If
mysqlnd_uh.enable
is set to
FALSE
the function will not install the proxy and always return
TRUE
. Additionally, an error of the type
E_WARNING may be emitted. The error message
may read like 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
[...].
Parameters
statement_proxy
The mysqlnd statement proxy object of type
MysqlndUhStatement
Return Values
Returns
TRUE
on success. Otherwise, returns
FALSE
See Also
mysqlnd_uh_set_connection_proxy
|
mysqlnd_uh.enable
|

User Comments
Add your own comment.