PHP: Hypertext Preprocessor (original) (raw)
mysqli::options
mysqli_options
(PHP 5, PHP 7, PHP 8)
mysqli::options -- mysqli_options — Set options
Description
Object-oriented style
This function may be called multiple times to set several options.
mysqli_options() should be called aftermysqli_init() and beforemysqli_real_connect().
Return Values
Returns [true](reserved.constants.php#constant.true)
on success or [false](reserved.constants.php#constant.false)
on failure.
Notes
Note:
MySQLnd always assumes the server default charset. This charset is sent during connection hand-shake/authentication, which mysqlnd will use.
Libmysqlclient uses the default charset set in themy.cnf or by an explicit call to mysqli_options() prior to calling mysqli_real_connect(), but after mysqli_init().
See Also
- mysqli_init() - Initializes MySQLi and returns an object for use with mysqli_real_connect()
- mysqli_real_connect() - Opens a connection to a mysql server
Found A Problem?
6 years ago
`There is an undocumented option: MYSQLI_OPT_READ_TIMEOUT. This is similar to MYSQLI_OPT_CONNECT_TIMEOUT in theory, but has a slightly different application. Connection timeout only specifies the wait time for the initial TCP connection. Once that is created, the timeout no longer applies. Read timeout, however, is from the time the TCP connection is created until the first packet of actual data is received. There are instances where a TCP connection can be established, but the MySQL server stalls indefinitely, preventing execution from ever returning to PHP. Specifying a read timeout alleviates this condition, whereas connect timeout wouldn't.
If the MYSQLI_OPT_READ_TIMEOUT constant isn't defined, it is still supported on versions where that isn't the case. You can define it yourself in older PHP versions with the following code.
You can then use read timeout the same way you could a connect timeout as follows. Please note that since these are two different timeout values for two different parts of the entire connection process, the timeouts do stack (eg: 10 seconds connect timeout + 10 seconds read timeout = maximum possible timeout of 20 seconds)
options(MYSQLI_OPT_CONNECT_TIMEOUT, 10);//specify the read timeout $connection->options(MYSQLI_OPT_READ_TIMEOUT, 10);//initiate the connection to the server, using both previously specified timeouts $connection->real_connect('server', 'user', 'pass', 'database'); ?>`
18 years ago
`Here es little example to create a SSL Connection
test=test = test=db->options(MYSQLI_EAD_DEFAULT_FILE,'myother.cnf'); */$db->ssl_set('server-key.pem','server-cert.pem', 'cacert.pem',NULL,NULL);$db->real_connect('localhost','root','','mydb');//Here some query$db->close();?>`
3 years ago
Although it is not explained on the manual, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT is an option only valid for mysqlnd and will raise an error if used with mysqli.
puneetsharam9 at hotmail dot com ¶
2 years ago
`With Objective Approach
init of mysqli is depreciated from 8.1 it seem so
You could have to use an empty __construct()
So You have proper int and float
class DB extends \mysqli {
private function __construct(
private $_user = DBUSER,
private $_pass = DBPWD,
private $_dbName = DBNAME,
private $_dbHost = DBHOST,
) {
parent::__construct();
parent::options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
parent::real_connect($this->_dbHost, this−>user,this->_user, this−>user,this->_pass, $this->_dbName);
}
}
`
1 year ago
The `MYSQLI_OPT_SSL_VERIFY_SERVER_CERT` seems to always fail, with `options()` always returning false. Use the `MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT` flag with `real_connect()` instead.
17 years ago
`Example on using mysqli_options to increase size of max_allowed_packet for working with big blobs.
function dbConnect()
{
$user = 'jomama';
$pass = 'cartoon';
$dbName = 'LifeCycle';
$host = 'localhost';
$mysqli = mysqli_init();
mysqli_options($mysqli,MYSQLI_READ_DEFAULT_GROUP,
"max_allowed_packet=50M");
mysqli_real_connect($mysqli,$host, user,user, user,pass,$dbName)
or die ('
Unable to connect
'); return $mysqli;
}
`