【问题标题】:mysqli insert statement errormysqli插入语句错误
【发布时间】:2013-05-17 20:20:30
【问题描述】:

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

【问题讨论】:

标签: php sql mysqli insert


【解决方案1】:

mysqli_stmt的语法:

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

你错过了指定变量的类型

试试

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

【讨论】:

  • 哦.. 是的,在 PDO 中,我们初始化了一个 PDO 对象。无论如何谢谢:)
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2016-12-18
    • 1970-01-01
    相关资源
    最近更新 更多