1
votes

I have been stumped by this error i am trying validate user that if username or email is already in the table.please help....

function checkDuplicateEntries($table,$column_name,$value,$db){

   try {

       $sqlQuery = "SELECT * FROM " .$table."WHERE".$column_name."=:$column_name";

       $statement = $db->prepare($sqlQuery);

       $statement->execute(array(':$column_name'=> $value));

       if($row=$statement->fetch()){

           return true;
       }
       return false;

   }catch (PDOException $ex){

       echo"error while checking for duplicate entries".$ex->getMessage();

   }


 }


 if(checkDuplicateEntries("users","email",$email,$db)){

            $result = flashMessage("Email is already taken please try another one");
        }


else if(checkDuplicateEntries("users","username",$username,$db)){

        $result = flashMessage("Username is already taken please try another one");
    }
1
What is the output of this ? - Vasil Shaddix
Make sure you know the difference between single and double quotes. - u_mulder
error while checking for duplicate entriesSQLSTATE[HY093]: Invalid parameter number: parameter was not definederror while checking for duplicate entriesSQLSTATE[HY093]: Invalid parameter number: parameter was not defined - Tariq
You need space between table name and where clause - Saty

1 Answers

0
votes

The reason is that you use single quotes on execute() call:

$statement->execute(array(':$column_name'=> $value));

Switch it to a double quotes and try again. Please also take a look at: What is the difference between single-quoted and double-quoted strings in PHP?