2

只需更新我的 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 (?,?,?,?,?,?)
4

2 回答 2

2

mysqli_stmt 的语法:

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

您错过了指定变量的类型

尝试

$stmt->bind_param("ssssss",$username, $pass_hash, $title, $firstname, $lastname, $email);
于 2013-05-22T17:05:14.380 回答
1

在使用函数之前,必须阅读手册页以了解正确的语法,即

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

所以,第一个参数必须是一个字符串'sssssss'

于 2013-05-22T17:04:38.703 回答