首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SSL的PHP MySQLi持久连接

使用SSL的PHP MySQLi持久连接
EN

Stack Overflow用户
提问于 2011-07-26 04:58:05
回答 1查看 1.6K关注 0票数 1

我在配置基于ssl的持久MySQLi连接时遇到了问题。如有任何建议,欢迎光临。

无持久连接:

代码语言:javascript
复制
$flags = MYSQLI_CLIENT_SSL;
$link = new mysqli();
$link->ssl_set(null, null, null, null, "RC4-MD5");
if ($link->real_connect($host, $user, $pass, $db, $port, null, $flags)) {
    $r = $link->query("SHOW STATUS LIKE 'Ssl_cipher'");
    var_dump($r->fetch_row());
}

输出结果为

代码语言:javascript
复制
array(2) {
   [0]=> string(10) "Ssl_cipher"
   [1]=> string(18) "RC4-MD5"
}

使用持久连接:

代码语言:javascript
复制
$flags = MYSQLI_CLIENT_SSL;
$link = new mysqli();
$link->ssl_set(null, null, null, null, "RC4-MD5");
if ($link->real_connect('p:' . $host, $user, $pass, $db, $port, null, $flags)) {
    $r = $link->query("SHOW STATUS LIKE 'Ssl_cipher'");
    var_dump($r->fetch_row());
}

输出结果为

代码语言:javascript
复制
array(2) {
   [0]=> string(10) "Ssl_cipher"
   [1]=> string(0) ""
}

更新:我认为这是一个php bug https://bugs.php.net/bug.php?id=55283 --对于持久连接,ssl_set()基本上被忽略了,在我的例子中,由于服务器配置的原因,这将连接降级为非ssl。

EN

回答 1

Stack Overflow用户

发布于 2011-07-26 05:07:48

您必须先运行mysqli::ssl_set,然后才能运行real_connect。

http://www.php.net/manual/en/mysqli.ssl-set.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6822270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档