2015-05-30 9 views
0

Я участвую в cloud9 для школьного проекта, и я пытаюсь протестировать некоторый запрос MySQL, но он не имеет новой строки в phpMyAdmin с этим кодом.Не могу вставить свои данные: PHP/MYSQL на Cloud9

Когда я пытаюсь из HTML-формы, у меня есть «Connection sucefullyFOO», «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

пожалуйста, показать, что ошибка идет – wiretext

ответ

2

Размещение массива в ->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(); 
+0

вау THx чувак! это работает;) – barnab21

+0

рад помочь. обязательно отметьте его как ответ, чтобы закрыть вопрос. – Sean

Смежные вопросы