mysqli插入语句错误

时间:2013-05-22 16:59:51

标签: sql insert mysqli

只是更新我的mysql连接等等以使用这个mysqli实现。 我正在尝试运行以下代码......

与数据库的连接很好并且有效,当我替换?对于真正的价值观,它有效有人可以帮我解决下面的错误吗?

感谢。

代码:

$sql = "INSERT INTO customers (cap_login, cap_pword, title, firstname, lastname, email)
VALUES (?,?,?,?,?,?)";
echo $sql;

$stmt = $db->prepare($sql);
$stmt->bind_param($username, $pass_hash, $title, $firstname, $lastname, $email);
$stmt->execute();
$stmt->close();

错误:

Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in....

我回应了sql的判断并得到了这个:

INSERT INTO customers (cap_login, cap_pword, title, firstname, lastname, email) VALUES (?,?,?,?,?,?)

2 个答案:

答案 0 :(得分:2)

mysqli_stmt的语法:

mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

你错过了指定变量的类型

尝试

$stmt->bind_param("ssssss",$username, $pass_hash, $title, $firstname, $lastname, $email);

答案 1 :(得分:1)

在使用函数之前,必须阅读the manual page for the right syntax,即

bind_param ( string $types , mixed &$var1 [, mixed &$... ] )
                    ^^^^^^

因此,第一个参数必须是'sssssss'

之类的字符串