Maison > Questions et réponses > le corps du texte
Pour un projet, j'essaie de créer une application dans laquelle les utilisateurs peuvent saisir leurs valeurs, mais lorsque je la teste sur localhost, j'obtiens toujours cette erreur : Attention : mysqli_connect() : (HY000/3159) : Désactiver la transmission lors de l'utilisation d'un connexion --require_secure_transport=ON. Voici mon code 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);
Existe-t-il un moyen sécurisé de corriger cette erreur puisque le projet doit être publié et d'après ce que j'ai compris, il n'est pas sûr de désactiver secure_transport.
J'ai essayé d'utiliser une autre base de données externe, ce qui a entraîné une autre erreur, la connexion a été activement refusée. Ce code fonctionne parce que j'ai essayé de l'exécuter sur localhost et il fonctionne
P粉9464374742023-12-21 17:42:37
Vous devez appeler [mysqli_real_connect][1] et transmettre l'instance $mysqli en paramètre
$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'); }
Puis transmis à 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