Я задал вопрос об ошибке PDO ( здесь, но у меня есть еще одна проблема с объектом …
Вот мой код:
include('../../config/connexion-bdd.php'); $nom = $_POST['nom']; $regexNom = '/^[a-zA-Z -]+$/'; $prenom = $_POST['prenom']; $regexPrenom = '/^[a-zA-Z -]+$/'; $email = $_POST['email']; $regexEmail = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[az]{2,3})$/'; $identifiant = $_POST['identifiant']; $regexIdentifiant = '/^[a-z1-9]+$/'; $motDePasse = $_POST['motDePasse']; $confirmeMotDePasse = $_POST['ConfirmeMotDePasse']; $regexMdp = '/^[a-zA-Z1-9]+$/'; $utilisateurConnecte = $_POST['utilisateur-connecte']; if (preg_match($regexNom, $nom) && preg_match($regexPrenom, $prenom) && preg_match($regexEmail, $email) && preg_match($regexIdentifiant, $identifiant) && preg_match($regexMdp, $motDePasse) && preg_match($regexMdp, $confirmeMotDePasse) && $motDePasse == $confirmeMotDePasse) { $stmt = $bdd->prepare('SELECT COUNT(*) FROM utilisateurs WHERE identifiant = ?'); $stmt->execute(array($_POST['identifiant'])); if ($stmt->fetchColumn() == 0){ $updt=$connect->prepare("INSERT INTO utilisateurs('nom','prenom','email','identifiant','mot_de_passe') VALUES (:nom, :prenom, :email, :identifiant, MD5(:mdp))"); $updt->execute(array('nom'=>$nom,'prenom'=>$prenom,'email'=>$email,'identifiant'=>$identifiant,'mdp'=>$motDePasse)); header('./gestion-utilisateur.php'); } else { echo 'error 1'; } } else { echo 'error 2'; }
Поэтому у меня есть эта ошибка для этой строки $stmt = $bdd->prepare('SELECT COUNT(*) FROM utilisateurs WHERE identifiant = ?');
:
Неустранимая ошибка: вызов функции-члена prepare () для не-объекта в …
Вы можете помочь мне, пожалуйста?
Все ясно, ваш $bdd
не содержит SQL-соединения. Вы должны проверить правильность подключения SQL.
$bdd
должен быть объектом, и поэтому он содержит метод под названием prepare()
.
Когда соединение установлено неправильно, переменная $bdd
не будет объектом и, следовательно, не будет готовить метод.
Теперь, когда вы используете $bdd->prepare()
он выдает ошибку, что $bdd
не является объектом, поэтому у него не может быть метода под названием prepare()
Теперь вы должны представить var_dump($bdd)
перед $bdd->prepare()
для ее проверки.