对于一个项目,我试图制作一个应用程序,用户可以输入他们的值,但是当我在本地主机上测试这个值时,我总是会收到这样的错误:警告: mysqli_connect():(HY000/3159):禁止使用不安全传输的连接,而-require_secure_ transport = on。这是我的php代码:
$bedrijfsnaam = $_POST['bedrijfsnaam'];
$dag = $_POST['dag'];
$caption = $_POST['caption'];
var_dump($bedrijfsnaam,
$dag,
$caption);
$dbh = mysqli_connect(hostname: $host,
username: $username,
password: $password,
database: $dbname);
if (mysqli_connect_errno()) {
die("Connection error: " . mysqli_connect_errno());
}
$sql = "INSERT INTO file_upload (bedrijfsnaam, dag, caption)
VALUES (?, ?, ?)";
$stmt = mysqli_stmt_init($conn);是否有一种安全的方法来修复此错误,因为该项目必须发布,据我所知,关闭secure_transport是不安全的。

我尝试使用另一个外部数据库,这会导致另一个错误,在那里连接得到了活跃的加油。代码确实可以工作,因为我已经尝试运行它的localhost并且它确实工作了。
发布于 2022-11-25 23:27:50
您需要调用mysqli_real_connect并将$mysqli实例作为参数传入
$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init failed');
}
$mysqli->ssl_set(
'/path/to/client-key.pem',
'/path/to/client-cert.pem',
'/path/to/ca-cert.pem',
NULL,
NULL
); //any paths here will work
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}然后传递给mysqli_real_connect
$dbh = mysqli_real_connect(mysql:$mysqli, hostname: $host,
username: $username,
password: $password,
database: $dbname);
[1]: https://www.w3schools.com/Php/func_mysqli_real_connect.asphttps://stackoverflow.com/questions/74566198
复制相似问题