首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警告: mysqli_connect():(HY000/3159):禁止使用不安全传输的连接,而

问警告: mysqli_connect():(HY000/3159):禁止使用不安全传输的连接,而
EN

Stack Overflow用户
提问于 2022-11-24 21:08:17
回答 1查看 30关注 0票数 0

对于一个项目,我试图制作一个应用程序,用户可以输入他们的值,但是当我在本地主机上测试这个值时,我总是会收到这样的错误:警告: mysqli_connect():(HY000/3159):禁止使用不安全传输的连接,而-require_secure_ transport = on。这是我的php代码:

代码语言:javascript
复制
    $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并且它确实工作了。

EN

回答 1

Stack Overflow用户

发布于 2022-11-25 23:27:50

您需要调用mysqli_real_connect并将$mysqli实例作为参数传入

代码语言:javascript
复制
        $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

代码语言:javascript
复制
   $dbh = mysqli_real_connect(mysql:$mysqli, hostname: $host, 
                          username: $username, 
                          password: $password,
                          database: $dbname);


  [1]: https://www.w3schools.com/Php/func_mysqli_real_connect.asp
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74566198

复制
相关文章

相似问题

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