Prepared STMT meckert über falsche Parameteranzahl

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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?
    Zuletzt geändert von 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]

    Kommentar

    Lädt...
    X