简体   繁体   English

检查数据库中是否存在该值

[英]Checking if the value exists in database

Fatal error: Call to a member function execute() on a non-object in C:\\xampp\\htdocs\\registration2.php 致命错误:在C:\\ xampp \\ htdocs \\ registration2.php中的非对象上调用成员函数execute()

in this code: 在此代码中:

<form method="post" action="">
    <label>Email</label><input type="text" name="email"/><br>
    <label>Heslo</label><input type="password" name="password"/><br>
    <label>Heslo znovu</label><input type="password" name="passwordagain"/><br>
    <label>Nickname</label><input type="text" name="nickname"/><br>
    <input type="submit" name="submit"/>
</form> 
if(isset($_POST['nickname'])){
    $nickname= $_POST['nickname'];

    $sql4 = "SELECT nickname FROM registration WHERE nickname = :nickname";
    $sql4->execute(array(":nickname"=>$nickname));
    if($sql4->rowCount() > 0){
        echo "toto jméno již existuje";
    }

}

You are attempting to call a method on a string, which isn't an object, hence your error. 您试图在不是对象的字符串上调用方法,因此会出现错误。

First you need to prepare your SQL query, then execute it. 首先,您需要准备SQL查询,然后执行它。

I've assumed your PDO object to be called $dbh , replace it with your own: 我假设您的PDO对象称为$dbh ,用您自己的对象替换它:

if(isset($_POST['nickname'])){
    $nickname= $_POST['nickname'];

    $sql4 = $dbh->prepare("SELECT nickname FROM registration WHERE nickname = :nickname");
    $sql4->execute(array(":nickname"=>$nickname));
    if($sql4->rowCount() > 0){
        echo "toto jméno již existuje";
    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM