【问题标题】:Can't update field with MysqliDb无法使用 MysqliDb 更新字段
【发布时间】:2015-12-02 04:44:45
【问题描述】:

我正在尝试将用户访问令牌添加到我的数据库。我正在使用 php mysqlidb 连接库。

如果我在下面使用这个函数,我会得到这个错误:

<b>Warning</b>:  mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables in MysqliDb.php</b> on line <b>1092</b>

function connectUser($id, $fbid, $accessToken) {
    global $db;
    $data = Array (
        'fbid' => $fbid,
        "access_token" => $accessToken
    );
    $db->where ('id', $id);
    $db->update ('users', $data);

}

我知道 accessToken 里面有东西,因为如果我在前面的函数中为 accessToken 添加回显,我会得到:

CadC5cqRAZArcBAKDZBZBA2AO5Beu1ZBWLFWl5FZClIuFvcx8jvdBZBTv3t3gplq32dm0gw99u62dQAAoBZC71bvgDYjy5RxnpjYzzUWoOlGmlZAwL4gtregzOF9mOqBtp24mybRVMR14mCmuA7YZAJ8kvxfonv151ZAadhlZCi1TKj8I5guOO2YZC2Vfs

然后尝试手动添加它没有错误:

 function connectUser($id, $fbid, $accessToken) {
        global $db;
        $data = Array (
            'fbid' => $fbid,
            "access_token" => 'CadC5cqRAZArcBAKDZBZBA2AO5Beu1ZBWLFWl5FZClIuFvcx8jvdBZBTv3t3gplq32dm0gw99u62dQAAoBZC71bvgDYjy5RxnpjYzzUWoOlGmlZAwL4gtregzOF9mOqBtp24mybRVMR14mCmuA7YZAJ8kvxfonv151ZAadhlZCi1TKj8I5guOO2YZC2Vfs'
        );
        $db->where ('id', $id);
        $db->update ('users', $data);

    }

这是怎么回事?

【问题讨论】:

  • 此错误是指在您的查询中定义了许多变量,但没有将所有变量绑定到特定值。这不是价值的问题,而是数量的问题。

标签: php mysql mysqli prepared-statement php-mysqlidb


【解决方案1】:

此警告意味着您的输入参数 $id、$fbid 或 $accessToken 之一为空。将它们记录在某个地方,您会看到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-10
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    相关资源
    最近更新 更多