web-dev-qa-db-fra.com

comment lier plusieurs paramètres à une requête MySQLi

J'ai une requête mysql, mais je ne peux pas lier param pour cela

SELECT users.email,users.handle,userprofile.mobile FROM users,userprofile WHERE users.email =? OR users.handle =? OR userprofile.mobile=?

J'ai essayé en dessous de la ligne

$query = "SELECT users.email,users.handle,userprofile.mobile FROM users,userprofile WHERE users.email =? OR users.handle =? OR userprofile.mobile=?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("sss",$email,$username,$mobile);
if ($stmt->execute()) {
if($stmt->num_rows){
   echo '......';
    }
}

mais j'ai reçu et erreur:

Avertissement: mysqli_stmt :: bind_param (): Le nombre d'éléments dans la chaîne de définition de type ne correspond pas au nombre de variables de liaison

23
AF.P

Ceci est la syntaxe correcte pour la liaison des paramètres dans mysqli

$SQL = "SELECT 
              users.email,
              users.handle,
              userprofile.mobile 
        FROM users,userprofile      
        WHERE users.email =? OR users.handle =? OR userprofile.mobile=?";

if ($stmt = $mysqli->prepare($SQL)) {

     $stmt->bind_param("sss", $one,$two,$three);
     $stmt->execute();

     //do stuff
}
30
Fabio

Essaye ça...

$stmt = $dbConn->prepare("SELECT users.email,users.handle,userprofile.mobile FROM users,userprofile WHERE users.email = ? OR users.handle = ? OR userprofile.mobile= ?");
$stmt->bind_param("sss", $email, $handle, $mobile);
$stmt->execute();
3
Josh Balcitis