2010-05-19 60 views
1

我有此错误:mysqli的插入查询

警告:mysqli_stmt :: bind_param()[mysqli的-stmt.bind-PARAM]:在类型定义字符串元素的数量不于E匹配绑定变量的数:\ WAMP \ WWW \类\ UserLogin.php上线31

,我不知道它是什么:/

这里是我的代码

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; 
} 

然后我的用户创建的用户他们只需要输入用户名和密码,然后他们可以编辑配置文件和编辑,电子邮件,al木,引擎盖等等:)。

回答

2

我相信你bind_param调用应该包括类型规范字符串。在你的情况,可能是这样的:

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

虽然我猜你的数据类型。有关更多信息,请参阅mysqli_stmt :: bind_param文档页面。

+0

我有编辑它,我现在不得到任何错误回报,但不要把它插入到数据库中:S – Simon 2010-05-19 13:53:46

+0

如果你没有在数据库中的条目,必须有一个错误。你检查与准备一个错误,而不是“$ stmt-> bind_param”,也不是“$ stmt->执行”(第二个可能是更重要的)。它们中的任何一个都会返回false?如果是这样,$ stmt->错误应该表明问题。 – 2010-05-19 14:51:54