Intereting Posts

Почему у меня есть фатальная ошибка: вызов функции-члена для подготовки () к не-объекту?

Я задал вопрос об ошибке 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() для ее проверки.