Prepared STMT meckert über falsche Parameteranzahl

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Prepared STMT meckert über falsche Parameteranzahl

    Hallo!

    Nachdem ich gerade an einem Fehler hängen bleibe, habe ich mich nun nach längerem Mitlesen auch mal hier registriert

    Also es geht darum, dass ich eine Anzahl an vorhandenen Datensätzen herausfinden will und dafür mysqli mit prepared statements verwende.

    PHP Code:
    $sql "SELECT COUNT(*) AS count FROM `users` WHERE `email` = '?' OR `nickname` = '?';"
            
    $result $this->db->prepare($sql);
            
    $result->bind_param'ss'$email$nickname);    
            
    $result->execute();
            
    $result->bind_result($count); 
    Der Query ansich funktioniert in PHPMyAdmin bestens, aber hier im prepared statement stimmt etwas nicht.

    Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of variables doesn't match number of parameters in prepared statement in /www/htdocs/xyz/xyzt/xyz.php on line 150
    Also die Aussage ansich ist ja glasklar, allerdings kann ich das nicht ganz nachvollziehen. Mein Query enthält doch 2 Fragezeichen und der bind ebenfalls.

    Seht ihr den Fehler?

    Danke!

    edit: die '' um die Fragezeichen herum , also '?', waren der Grund dafür...
    Letztes Problem: in $count steckt nichts drin, warum das?
    Last edited by limaleet; 23-05-2010, 22:05.

  • #2
    Hallo,

    diese Fehlermeldung kommt verwirrenderweise auch dann, wenn die Abfrage syntaktisch falsch ist, in deinem Falle dürfen die ? nicht gequotet sein, das passiert beim Binden automatisch. Also:

    Code:
    SELECT COUNT(*) AS count FROM `users` WHERE `email` = ? OR `nickname` = ?
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Comment

    Working...
    X