Number of variables doesn't match number of parameters in prepared statement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jules Kreutzer

Jules Kreutzer

09/10/2014 14:03:07
Quote Anchor link
Hoi,

Ik heb een script die moet tellen hoeveel keer een bepaald geslacht voorkomt. Wanneer ik de SQL code uitvoer in phpmyadmin krijg ik wel het juiste resultaat te zien, maar wanneer ik de pagina op internet plaats komt er een error.

Hier de error:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in...


Dit is de code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function countGender($gender) {
    global $con;
    $stmt = $con->prepare("SELECT COUNT(CASE geslacht WHEN '?' THEN 1 ELSE NULL END) FROM roboshooter");
    $stmt->bind_param("s",$gender);
    $stmt->execute();
    $stmt->bind_result($geslacht);
    while($stmt->fetch()) {
        $row[] = array('geslacht' => $geslacht);
    }
    
    $stmt->close();    
    
    return($row);
?>

Hopelijk weten jullie wat het probleem is,

Alvast bedankt!
 
PHP hulp

PHP hulp

25/04/2024 15:10:14
 
Ivo P

Ivo P

09/10/2014 14:26:40
Quote Anchor link
Ik zou niet COUNT maar SUM gebruiken.

of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT COUNT(*)
FROM tabel
WHERE geslacht = ?


ik denk trouwens dat jouw '?' naar ? moet worden aangepast
 
Jan de Laet

Jan de Laet

09/10/2014 20:28:27
Quote Anchor link
Als je countGender voor elk geslacht zou aanroepen is het dan niet handiger en sneller om meteen alle geslachten op te halen.
Bijv:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT geslacht, COUNT(*)
FROM roboshooter
GROUP BY geslacht
Gewijzigd op 09/10/2014 20:29:17 door Jan de Laet
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.