對(duì)於一個(gè)項(xiàng)目,我正在嘗試製作一個(gè)應(yīng)用程序,其中用戶可以輸入他們的值,但是當(dāng)我在本地主機(jī)上測(cè)試它時(shí),我不斷收到此錯(cuò)誤:警告:mysqli_connect():(HY000/ 3159):使用不安全的連線--require_secure_transport=ON 時(shí)禁止傳輸。這是我的 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);
是否有一種安全的方法來修復(fù)此錯(cuò)誤,因?yàn)樵搶0副佤P髮布,據(jù)我了解,關(guān)閉 secure_transport 是不安全的。
我嘗試使用另一個(gè)外部資料庫,這導(dǎo)致另一個(gè)錯(cuò)誤,連線被主動(dòng)拒絕。該程式碼確實(shí)有效,因?yàn)槲覈L試在本地主機(jī)上運(yùn)行它並且它確實(shí)有效
您需要呼叫 [mysqli_real_connect][1] 並傳入 $mysqli 實(shí)例作為參數(shù)
$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.asp