PDO bind_param - неопределенный метод [дубликат]

На этот вопрос уже есть ответ здесь:

Могу ли я смешивать MySQL API в PHP? 4 ответа

Я ухожу от mysql и mysqli, так как многие пользователи в stackoverflow постоянно говорят хорошие вещи об этом.

Мы создали класс базы данных и проверили это, это прекрасно соединяется с базой данных. Я'я пытался обновить мои подготовленные заявления, чтобы они соответствовали, однако я нахожусь на незнакомой территории и в результате получил следующую ошибку:

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

который отражает эту строку:

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

Также в связи с этим я получаю успешное соединение с базой данных и возвращаемые мне операторы close, а также фатальную ошибку, например: I '

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

объясню, чего я пытаюсь достичь:

Перед регистрацией пользователя проверьте, есть ли в базе данных электронная почтаесли это так, сообщите пользователю, что эта электронная почта существуетесли нет совпадения, вставьте пользователя в таблицу пользователей и зашифруйте пароль

Соответствующий код приведен ниже, и я был бы признателен, если бы кто-нибудь мог дать мне несколько советов по этому вопросу.

index.php

        
        
         
        

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

подключить / class.Database.php

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();
?>

Ответы на вопрос(2)

Ваш ответ на вопрос