php - PDO - 更新数据库 - 类似模式 - 一个工作另一个不工作

标签 php mysql pdo

<分区>

我基本上是 PDO 的新手,大约 3 天前才开始使用它。努力让我的东西与它一起工作。在这里四处看看,但这只会让我更加困惑,因为我找不到匹配的问题。

我有两个用 PDO 开发的更新 mysql 数据库功能。一个工作,另一个不工作。无法找出问题的真正所在,因为一切看起来都很好。这些是代码:

不工作

// NOT WORKING    

$updv = "UPDATE affiliate_link SET cj_tracker_url=:cjtr, cj_aid=:midr, cj_pid=:fidr, cj_isc:cisr WHERE ID=:ID";

            $arrv = array(
            'ID' => 1,
            'cjtr' => $cju,
            'midr' => $aai,
            'fidr' => $pai,
            'cisr' => $gis
            );
            $exdv = $condb -> prepare($updv, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
            $exdv -> execute($arrv);

工作

//WORKING
        $updb = "UPDATE right_sidebar SET topright_sidebar=:trs, middleright_sidebar=:mrs, bottomright_sidebar=:brs WHERE ID=:ID";

        $arrb = array(
        "ID" => 1,
        "trs" => $trb,
        "mrs" => $mrb,
        "brs" => $brb
        );
        $exdb = $condb -> prepare($updb, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
        $exdb->execute($arrb);

希望有人能给我一个线索。这是错误消息:

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in

最好的问候

最佳答案

您缺少“=” - 您在无效代码中的查询应该是:

$updv = "UPDATE affiliate_link SET cj_tracker_url=:cjtr, cj_aid=:midr, cj_pid=:fidr, cj_isc=:cisr WHERE ID=:ID";

关于php - PDO - 更新数据库 - 类似模式 - 一个工作另一个不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22227593/

相关文章:

javascript - 如何按回车键发表评论

php - 如何使用 2 个或更多关键字搜索多个列

MySQL 在同一列中查找具有匹配值的行的第一行和最后一行

php PDO fetchAll() - 虽然不工作,但 foreach 工作

php - bindParam和bindValue有什么区别?

php - 无法使用 file_get_contents ('php://input' 检索原始发布数据)

php - MySQL 和 PHP - 多行或连接成 1 行 - 哪个更快?

php - 如何将文本转换为\x 代码?

mysql - 用于从 s3 获取文件的 Bash 脚本

php - PDO 模拟关闭,多次绑定(bind)相同的值