PHP Datenbankabgleich | Problem bei "execute()"


#1
Hallo allerseits,
ich würde gerne prüfen (mit PDOStatement::execute) ob die eingegebene E-Mail-Adresse bereits in der Datenbank hinterlegt ist. Beim absenden des Formulars kommt aber immer diese Fehlermeldung :

Fatal error: Uncaught Error: Call to a member function execute() on bool in E:\XAMP\htdocs\.....php:51 Stack trace: #0 {main} thrown in E:\XAMP\htdocs\....php on line 51

Ich vermute es hat etwas mit prepare(); zu tun weis aber nicht genau was... Kann mir da einer weiter helfen? ;)

<?
$pdo = mysqli_connect("localhost", "root", "", "temp1");
if (!$pdo) {
exit("Verbindungsfehler:".mysqli_connect_error());
}

if(isset($_GET['register'])) {
$error = false;
$email = $_POST['email'];

if (!$error) {
$statement = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$result = $statement->execute(array('email' => $email));
$user = $statement->fetch();
if ($user !== false) {
echo 'Diese E-Mail-Adresse ist bereits vergeben<br>';
$error = true;
}
}
?>
 

basti1012

Erfahrenes Mitglied
#5
Ich bin bei pdo auch nicht gerade die beste Leuchte , doch wenn ich es so mache geht es bei mir

Code:
<?
try{
    $pdo = new PDO('mysql:host=localhost;dbname=sebastian1012', 'user', 'pass');
}catch(PDOException $ex){
    die('verbindung error '.$ex);
}
if(isset($_GET['register'])) {
   $error = false;
   $email = $_POST['email'];

   if (!$error) {
      $statement = $pdo->prepare("SELECT * FROM user WHERE email = :email");
      $statement->execute(array(':email' =>$email)); 
      $user = $statement->fetch();
      if ($user !== false) {
          echo 'Diese E-Mail-Adresse ist bereits vergeben<br>';
          $error = true;
      }
   }
}
?>
doch vorsichtshalber erkundige dich noch mal oder warte noch bis die anderen was sagen. Will dir jetzt auch nix falsches zeigen
 
#6
Ich bin bei pdo auch nicht gerade die beste Leuchte , doch wenn ich es so mache geht es bei mir

Code:
<?
try{
    $pdo = new PDO('mysql:host=localhost;dbname=sebastian1012', 'user', 'pass');
}catch(PDOException $ex){
    die('verbindung error '.$ex);
}
if(isset($_GET['register'])) {
   $error = false;
   $email = $_POST['email'];

   if (!$error) {
      $statement = $pdo->prepare("SELECT * FROM user WHERE email = :email");
      $statement->execute(array(':email' =>$email)); 
      $user = $statement->fetch();
      if ($user !== false) {
          echo 'Diese E-Mail-Adresse ist bereits vergeben<br>';
          $error = true;
      }
   }
}
?>
doch vorsichtshalber erkundige dich noch mal oder warte noch bis die anderen was sagen. Will dir jetzt auch nix falsches zeigen
Worüber läuft denn dein PHP, auch über XAMP? Vl muss ich ja auch nur eine Extension aktivieren oä.
 

basti1012

Erfahrenes Mitglied
#7
extension aktivieren ? Das habe ich zwar noch nicht gehöhrt aber wer weiß.

Hast du mein Code mal genommen und getestet ?
Hast du dein Xamp mal getestet ob da überhaupt irgendein Php Script Functioniert ?
Teste doch hello world
Code:
<?php
echo "Hallo Welt";
?>
Wird das den angezeigt und geht ?
Mein Php läuft bei bplaced.net auf deren Server. Ich schreibe den Code in einer Datei bis ich denke das ich fertig bin, lade ihn auf Server und mache ihn mit Browser auf.Dann kommen Fehler oder auch nicht.
Das wahrs schon.
Xamp ist nee schöne alternative ,aber ich kenne mich damit nicht aus weil ich es ja wie beschrieben direkt auf den Server mache.
 
#8
Hab den Fehler entdeckt, lag an meiner db connection. Da ich unten mit PDO gearbeitet habe, muss auch die db mit PDO verbunden werden und nicht mit mysqli_connect().
Trozdem danke für die Hilfe :)
 

Neue Beiträge