我连接到我的MySQL数据库,像这样:
$mysqli = new mysqli('76.65.87.64', 'user', 'my_password', 'my_db');
我有3个证书用于安全的SSL连接。如何在此连接中使用它们?
yizd12fk1#
我把这个答案放在这里是因为我也遇到了同样的问题,但已经深陷兔子洞...在我的例子中,我正在维护一个遗留的PHP服务器,它像OP一样使用mysqli以oop格式。$mysqli = new mysqli('123.123.123.123','user','my_password','my_db');现在需要增加SSL/TLS才能连接。我已经通过互联网搜索了mysqli oop格式和ssl功能,可悲的是似乎是不可能做到的。要添加SSL/TLS,有几个选项可供选择(我选择选项1):
$mysqli = new mysqli('123.123.123.123','user','my_password','my_db');
$mysqli = mysqli_init(); $mysqli->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); $mysqli->ssl_set(NULL, NULL, "xxx.crt", NULL, NULL); $mysqli->real_connect('123.123.123.123', 'user', 'my_password', 'my_db');
1.更改为使用PDO1.不要使用SSL(不是最佳选择)我认为理想的方法是迁移到PDO(optoins 2),但根据项目的规模和给定的时间,我们需要选择1。要做到这一点,我们可以使用Regex进行批量搜索和替换(我使用Visual Studio Code进行搜索和替换):
($[^-]+)->真实的_escape_string(([^)]+))
mysqli_真实的_escape_string($1,$2)
($[^-]+)->query(([^)]+))
mysqli_query($1,$2)也可以按照上面的格式把其他mysqli的oop函数改成mysqli的过程。希望这对某人有帮助,谢谢。
xqk2d5yq2#
一点简单的方法方便actucaly mysqli
<?php namespace mysqlConnect; class mymysqli extends \mysqli { public function __construct($db_host, $db_user, $db_pass, $db_name, $persistent = true, $ssl = false, $certpublic = "") { //$this->close(); parent::init(); //parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 1); if($ssl) { parent::options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, false); parent::ssl_set(NULL, NULL, $certpublic, NULL, NULL); } @parent::real_connect(($this->persistent ? 'p:' : '') . $this->db_host, $this->db_user, $this->db_pass, $this->db_name); } }
2条答案
按热度按时间yizd12fk1#
我把这个答案放在这里是因为我也遇到了同样的问题,但已经深陷兔子洞...
在我的例子中,我正在维护一个遗留的PHP服务器,它像OP一样使用mysqli以oop格式。
$mysqli = new mysqli('123.123.123.123','user','my_password','my_db');
现在需要增加SSL/TLS才能连接。
我已经通过互联网搜索了mysqli oop格式和ssl功能,可悲的是似乎是不可能做到的。
要添加SSL/TLS,有几个选项可供选择(我选择选项1):
$mysqli = new mysqli('123.123.123.123','user','my_password','my_db');
1.更改为使用PDO
1.不要使用SSL(不是最佳选择)
我认为理想的方法是迁移到PDO(optoins 2),但根据项目的规模和给定的时间,我们需要选择1。
要做到这一点,我们可以使用Regex进行批量搜索和替换(我使用Visual Studio Code进行搜索和替换):
($[^-]+)->真实的_escape_string(([^)]+))
mysqli_真实的_escape_string($1,$2)
($[^-]+)->query(([^)]+))
mysqli_query($1,$2)
也可以按照上面的格式把其他mysqli的oop函数改成mysqli的过程。希望这对某人有帮助,谢谢。
xqk2d5yq2#
一点简单的方法方便actucaly mysqli