文字

MysqlndUhConnection::setClientOption

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setClientOptionSets a client option

说明

public bool MysqlndUhConnection::setClientOption ( mysqlnd_connection $connection , int $option , int $value )

Sets a client option.

参数

connection

Mysqlnd connection handle. Do not modify!

option

The option to be set.

value

Optional option value, if required.

返回值

Returns TRUE on success. Otherwise, returns FALSE

范例

Example #1 MysqlndUhConnection::setClientOption() example

<?php
function  client_option_to_string ( $option ) {
 static 
$mapping  = array(
  
MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT  =>  "MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT" ,
  
MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS  =>  "MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS" ,
  
MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE  =>  "MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE" ,
  
MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND  =>  "MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND" ,
  
MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE  =>  "MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE" ,
  
MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP  =>  "MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP" ,
  
MYSQLND_UH_MYSQLND_SET_CHARSET_DIR  =>  "MYSQLND_UH_MYSQLND_SET_CHARSET_DIR" ,
  
MYSQLND_UH_MYSQLND_SET_CHARSET_NAME  =>  "MYSQLND_UH_MYSQLND_SET_CHARSET_NAME" ,
  
MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE  =>  "MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE" ,
  
MYSQLND_UH_MYSQLND_OPT_PROTOCOL  =>  "MYSQLND_UH_MYSQLND_OPT_PROTOCOL" ,
  
MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME  =>  "MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME" ,
  
MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT  =>  "MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT" ,
  
MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT  =>  "MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT" ,
  
MYSQLND_UH_MYSQLND_OPT_USE_RESULT  =>  "MYSQLND_UH_MYSQLND_OPT_USE_RESULT" ,
  
MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION  =>  "MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION" ,
  
MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION  =>  "MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION" ,
  
MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION  =>  "MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION" ,
  
MYSQLND_UH_MYSQLND_SET_CLIENT_IP  =>  "MYSQLND_UH_MYSQLND_SET_CLIENT_IP" ,
  
MYSQLND_UH_MYSQLND_SECURE_AUTH  =>  "MYSQLND_UH_MYSQLND_SECURE_AUTH" ,
  
MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION  =>  "MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION" ,
  
MYSQLND_UH_MYSQLND_OPT_RECONNECT  =>  "MYSQLND_UH_MYSQLND_OPT_RECONNECT" ,
  
MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT  =>  "MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT" ,
  
MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE  =>  "MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE" ,
  
MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE  =>  "MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE" ,
  
MYSQLND_UH_MYSQLND_OPT_SSL_KEY  =>  "MYSQLND_UH_MYSQLND_OPT_SSL_KEY" ,
  
MYSQLND_UH_MYSQLND_OPT_SSL_CERT  =>  "MYSQLND_UH_MYSQLND_OPT_SSL_CERT" ,
  
MYSQLND_UH_MYSQLND_OPT_SSL_CA  =>  "MYSQLND_UH_MYSQLND_OPT_SSL_CA" ,
  
MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH  =>  "MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH" ,
  
MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER  =>  "MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER" ,
  
MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE  =>  "MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE" ,
  
MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR  =>  "MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR" ,
  
MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH  =>  "MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH" ,
  
MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP  =>  "MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP"
 
);
 if (
version_compare ( PHP_VERSION '5.3.99-dev' '>' )) {
  
$mapping [ MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET ] =  "MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET" ;
  
$mapping [ MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL ] =  "MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL" ;
 }
 if (
defined ( "MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE" )) {
  

  
$mapping [ "MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE" ] =  "MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE" ;
 }
 return (isset(
$mapping [ $option ])) ?  $mapping [ $option ] :  'unknown' ;
}

class 
proxy  extends  MysqlndUhConnection  {
 public function 
setClientOption ( $res $option $value ) {
  
printf ( "%s(%s)\n" __METHOD__ var_export ( func_get_args (),  true ));
  
printf ( "Option '%s' set to %s\n" client_option_to_string ( $option ),  var_export ( $value true ));
  
$ret  parent :: setClientOption ( $res $option $value );
  
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" );
?>

以上例程会输出:

proxy::setClientOption(array (
  0 => NULL,
  1 => 210,
  2 => 3221225472,
))
Option 'MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET' set to 3221225472
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 211,
  2 => 'mysql_native_password',
))
Option 'MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL' set to 'mysql_native_password'
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 8,
  2 => 1,
))
Option 'MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE' set to 1
proxy::setClientOption returns true

参见

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_connect() - 建立一个 MySQL 服务器连接
  • mysqli_options() - Set options
上一篇: 下一篇: