2010-05-19 7 views
1

j'ai cette erreur:insert mysqli requête

Attention: mysqli_stmt :: bind_param() [mysqli-stmt.bind-PARAM]: Nombre d'éléments dans la chaîne de définition de type ne correspond pas à nombre de variables de liaison dans E : \ wamp \ www \ Classes \ UserLogin.php en ligne 31

et je ne sais pas ce qu'il est:/

ici est mon code

function createUser($username, $password) { 
$mysql = connect(); 
if($stmt = $mysql->prepare('INSERT INTO users (username, password, alder, hood, fornavn, efternavn, city, ip, level, email) VALUES (?,?,?,?,?,?,?,?,?,?)')) { 
    $stmt->bind_param($username,$password, $alder, $hood, $fornavn, $efternavn, $city, $ip, $level, $email); 
    $stmt->execute(); 
    $stmt->close(); 
} else { 
    echo 'error: ' . $mysql->error; 
} 

alors mon utilisateur de créer l'utilisateur, ils ne besoin de taper le nom d'utilisateur et mot de passe, et plus tard, ils peuvent modifier le profil et modifier, email, aulne, capot et comme ça :).

Répondre

2

Je crois que votre appel bind_param doit inclure une chaîne de spécification de type. Dans votre cas, peut-être quelque chose comme ceci:

$stmt->bind_param('ssssssssis', $username,$password, $alder, $hood, 
    $fornavn, $efternavn, $city, $ip, $level, $email); 

bien que je devine vos types de données. Voir la page de documentation mysqli_stmt :: bind_param pour plus d'informations.

+0

je l'ai éditer et je ne reçois aucune erreur maintenant mais il ne l'insère pas dans la base de données: S – Simon

+0

Si vous n'avez pas d'entrée dans la base de données, il doit y avoir une erreur. Vous avez vérifié une erreur avec la préparation, mais pas pour "$ stmt-> bind_param" ni "$ stmt-> execute" (le second est probablement plus important). Est-ce que l'un ou l'autre retourne faux? Si c'est le cas, l'erreur $ stmt-> devrait indiquer le problème. –

Questions connexes