Не могу вставить мои данные: PHP / MYSQL на Cloud9

Я нахожусь на cloud9 для школьного проекта, и я пытаюсь протестировать некоторый запрос MySQL, но у него нет новой строки в phpMyAdmin с этим кодом.

Когда я пытаюсь из формы HTML, у меня есть «Соединение успешно FOO», «BAR» не отображается; что я делаю не так?

<?php
//on se connecte à la base
$servername = getenv('IP');
$username = getenv('C9_USER');
$password = "";
$database = "projetPHP";
$dbport = 3306;

// Create connection
$bdd = new mysqli($servername, $username, $password, $database, $dbport);


// Check connection
if ($bdd->connect_error) {die("Connection failed ".$bdd->connect_error);}

echo "Connected successfully (".$bdd->host_info.")";
$pseudonyme = $_POST['pseudo'];
$mot_de_passe = $_POST['mdp'];
$confirm_mdp = $_POST['confirm_mdp'];
$email = $_POST['email'];

if ($mot_de_passe == $confirm_mdp)
{
//on crypte le mot de passe
$mot_de_passe = sha1($mdp);

echo "FOO";

$req = $bdd->prepare('INSERT INTO membres(pseudonyme, mot_de_passe, email, date_inscription) VALUES(:pseudonyme, :mot_de_passe, :email, CURDATE())'
$req->execute(array(
':pseudonyme' => $pseudonyme,
':mot_de_passe' => $mot_de_passe,
':email' => $email))
echo "BAR";
}
?>

0

Решение

Размещение массива в ->execute( [array()] ) является PDO метод.

В mysqli это ->execute( void ) где он не принимает параметры.

Вам нужно использовать mysqli_stmt::bind_param до вашего -execute()

Попробуйте изменить код на

$req = $bdd->prepare('INSERT INTO membres(pseudonyme, mot_de_passe, email, date_inscription) VALUES(?, ?, ?, CURDATE())');
$req->bind_param("sss", $pseudonyme, $mot_de_passe, $email);
$req->execute();
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]