PDO bind_param ist undefinierte Methode [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Kann ich MySQL-APIs in PHP mischen? 4 Antworten

Ich entferne mich von MySQL und MySQL, da viele Benutzer von Stackoverflow ständig gute Dinge darüber sagen.

Ich habe eine Datenbankklasse erstellt und diese getestet, dies stellt eine gute Verbindung zur Datenbank her. Ich habe versucht, meine vorbereiteten Aussagen so zu aktualisieren, dass sie übereinstimmen, aber ich befinde mich in einem unbekannten Gebiet und habe den folgenden Fehler erhalten:

Fatal error: Call to undefined method PDOStatement::bind_param() in E:\xampp\htdocs\imanage\insert.php on line 50

was diese Zeile widerspiegelt:

$stmt->bind_param("s", $_POST['email']);

Auch diesbezüglich erhalte ich den Datenbankverbindungserfolg und die zurückgegebenen Abschlussanweisungen sowie den schwerwiegenden Fehler, z. B .:

Successfully connected to the database!Successfully connected to the database!Successfully disconnected from the database!

Ich erkläre, was ich zu erreichen versuche:

Überprüfen Sie, ob E-Mails in der Datenbank vorhanden sind, bevor Sie den Benutzer registrierenWenn ja, teilen Sie dem Benutzer mit, dass diese E-Mail existiertWenn keine Übereinstimmung gefunden wird, fügen Sie den Benutzer in die Benutzertabelle ein und verschlüsseln Sie das Kennwort

Der relevante Code ist unten und würde mich freuen, wenn mir jemand eine Anleitung dazu geben könnte.

index.php

        <form id="loginForm" method="POST" action="class.Login.php">
        <input type="text" id="email" name="email" placeholder="E-mail">
        <input type="password" id="password" name="password" placeholder="Password" class="showpassword"> 
        <input type="submit" name="submit" value="Log in"></form>

insert.php

public function insert() {

                    $stmt = $this->pdo->prepare("SELECT COUNT(*) FROM users WHERE email=?");
                    $stmt->bind_param("s", $_POST['email']);
                    $stmt->execute();
                    $stmt->bind_result($email_count);
                    $stmt->fetch();//fecth
                    $stmt->close();     

                    if ($email_count > 0) {
                        echo "email exisits! click here to try <a href='register'>again</a>";
                        } else {
                            //escape the POST data for added protection
                            $username = isset($_POST['username']) ? $_POST['username'] : null;
                            $cryptedPassword = crypt($_POST['password']);
                            $password = $cryptedPassword;
                            $name = isset($_POST['name']) ? $_POST['name'] : null;
                            $email = isset($_POST['email']) ? $_POST['email'] : null;
                            $stmta = $this->pdo->prepare("INSERT INTO users (username, password, name, email) VALUES (?, ?, ?, ?)");
                            //var_dump($this->pdo->error);
                            $stmta->bind_param('ssss', $username, $password, $name, $email); // bind strings to the paramater

                                /* execute prepared statement */
                                $stmta->execute();
                                printf("%d Row inserted.\n", $stmta->affected_rows);
                                /* close statement and connection */
                                $stmta->close();
                } // end email_count and insert to table
            } // end function

connect / class.Database.php

<?php

// Database connection PDO

class Database {

    public function __construct() {
        // Connection information
        $host   = 'localhost';
        $dbname = 'imanage';
        $user   = 'root';
        $pass   = '';

        // Attempt DB connection
        try
        {
            $this->pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            echo 'Successfully connected to the database!';
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }

    }

     public function __destruct()
    {
        // Disconnect from DB
        $this->pdo = null;
        echo 'Successfully disconnected from the database!';
    }


}

$run = new Database();
?>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage