Mid-Atlantic Developer Conference



(PHP 5, PHP 7)

mysqli::ssl_set -- mysqli_ssl_setUsed for establishing secure connections using SSL


Object oriented style

mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher ) : bool

Procedural style

mysqli_ssl_set ( mysqli $link , string $key , string $cert , string $ca , string $capath , string $cipher ) : bool

Used for establishing secure connections using SSL. It must be called before mysqli_real_connect(). This function does nothing unless OpenSSL support is enabled.

Note that MySQL Native Driver does not support SSL before PHP 5.3.3, so calling this function when using MySQL Native Driver will result in an error. MySQL Native Driver is enabled by default on Microsoft Windows from PHP version 5.3 onwards.



Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()


The path name to the key file.


The path name to the certificate file.


The path name to the certificate authority file.


The pathname to a directory that contains trusted SSL CA certificates in PEM format.


A list of allowable ciphers to use for SSL encryption.

Any unused SSL parameters may be given as NULL

Return Values

This function always returns TRUE value. If SSL setup is incorrect mysqli_real_connect() will return an error when you attempt to connect.

See Also

add a note add a note

User Contributed Notes 1 note

quackfish at gmail dot com
3 years ago
Be warned, MySQL prior to versions 5.7.3 do not require the server to use SSL [1]. In the case of PHP the client won't throw an error if the connection is downgraded to plain-text [2]

[1] https://dev.mysql.com/doc/refman/5.7/en/encrypted-connection-options.html#option_general_ssl
[2] http://www.idontplaydarts.com/2015/03/mysql-with-ssl-does-not-protect-against-active-mitm/
To Top