MYSQLND_UH_CONVERT_TO_MYSQLND(3) 1 MYSQLND_UH_CONVERT_TO_MYSQLND(3)mysqlnd_uh_convert_to_mysqlnd - Converts a MySQL connection handle into a mysqlnd connection handleSYNOPSIS
resource mysqlnd_uh_convert_to_mysqlnd (mysqli &$mysql_connection)
DESCRIPTION
Converts a MySQL connection handle into a mysqlnd connection handle. After conversion you can execute mysqlnd library calls on the connec-
tion 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
o $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 #1
mysqlnd_uh_convert_to_mysqlnd(3) 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.
PHP Documentation Group MYSQLND_UH_CONVERT_TO_MYSQLND(3)
Check Out this Related Man Page
MYSQLI_QUERY(3) 1 MYSQLI_QUERY(3)mysqli::query - Performs a query on the database
Object oriented style
SYNOPSIS
mixed mysqli::query (string $query, [int $resultmode = MYSQLI_STORE_RESULT])
DESCRIPTION
Procedural style
mixed mysqli_query (mysqli $link, string $query, [int $resultmode = MYSQLI_STORE_RESULT])
Performs a $query against the database.
For non-DML queries (not INSERT, UPDATE or DELETE), this function is similar to calling mysqli_real_query(3) followed by either
mysqli_use_result(3) or mysqli_store_result(3).
Note
In the case where you pass a statement to mysqli_query(3) that is longer than max_allowed_packet of the server, the returned error
codes are different depending on whether you are using MySQL Native Driver ( mysqlnd) or MySQL Client Library ( libmysqlclient). The
behavior is as follows:
o mysqlnd on Linux returns an error code of 1153. The error message means got a packet bigger than max_allowed_packet bytes.
o mysqlnd on Windows returns an error code 2006. This error message means server has gone away.
o libmysqlclient on all platforms returns an error code 2006. This error message means server has gone away.
PARAMETERS
o $
link -Procedural style only: A link identifier returned by mysqli_connect(3) or mysqli_init(3)
o $query
- The query string. Data inside the query should be properly escaped.
o $resultmode
- Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, MYSQLI_STORE_RESULT
is used. If you use MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call
mysqli_free_result(3) With MYSQLI_ASYNC (available with mysqlnd), it is possible to perform query asynchronously. mysqli_poll(3)
is then used to get results from such queries.
RETURN VALUES
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query(3) will return a mysqli_result object. For
other successful queries mysqli_query(3) will return TRUE.
CHANGELOG
+--------+--------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+--------------------------------------+
| 5.3.0 | |
| | |
| | Added the ability of async queries. |
| | |
+--------+--------------------------------------+
EXAMPLES
Example #1
mysqli::query example
Object oriented style
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s
", $mysqli->connect_error);
exit();
}
/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
printf("Table myCity successfully created.
");
}
/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
printf("Select returned %d rows.
", $result->num_rows);
/* free result set */
$result->close();
}
/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {
/* Note, that we can't execute any functions which interact with the
server until result set was closed. All calls will return an
'out of sync' error */
if (!$mysqli->query("SET @a:='this will not work'")) {
printf("Error: %s
", $mysqli->error);
}
$result->close();
}
$mysqli->close();
?>
Procedural style
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s
", mysqli_connect_error());
exit();
}
/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
printf("Table myCity successfully created.
");
}
/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
printf("Select returned %d rows.
", mysqli_num_rows($result));
/* free result set */
mysqli_free_result($result);
}
/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {
/* Note, that we can't execute any functions which interact with the
server until result set was closed. All calls will return an
'out of sync' error */
if (!mysqli_query($link, "SET @a:='this will not work'")) {
printf("Error: %s
", mysqli_error($link));
}
mysqli_free_result($result);
}
mysqli_close($link);
?>
The above examples will output:
Table myCity successfully created.
Select returned 10 rows.
Error: Commands out of sync; You can't run this command now
SEE ALSO mysqli_real_query(3), mysqli_multi_query(3), mysqli_free_result(3).
PHP Documentation Group MYSQLI_QUERY(3)