php - MySql 查询正在对表中的每条记录执行

标签 php mysql

好的,我有一个疑问:

    UPDATE  example_table
    SET     some_column = :some_data,
            else_column = :else_data;
            asd_column = :asd_data,
            xyz_column = :xyz_data,
            abc_column = :abc_column,
            qwe_column = :qwe_column,
            fgh_column = :fgh_column,
            tyu_column = :tyu_column,
            bnm_column = :bnm_column
    WHERE   id = :user LIMIT 1

$p->bindParam(':user', $this->id, PDO::PARAM_STR);
$p->bindParam(':some_column', $this->some_column, PDO::PARAM_INT);
$p->bindParam(':else_column ', $this->else_column, PDO::PARAM_STR);
$p->bindParam(':asd_column ', $this->asd_column, PDO::PARAM_INT);
$p->bindParam(':xyz_column', $this->xyz_column, PDO::PARAM_STR);
$p->bindParam(':abc_column', $this->abc_column, PDO::PARAM_INT);
$p->bindParam(':qwe_column', $this->qwe_column, PDO::PARAM_INT);
$p->bindParam(':fgh_column', $this->fgh_column, PDO::PARAM_INT);
$p->bindParam(':tyu_column', $this->tyu_column, PDO::PARAM_INT);
$p->bindParam(':bnm_column', $this->bnm_column, PDO::PARAM_STR);

问题是此查询正在更新 example_table 中的每条记录 当然,我检查它只被执行一次 因为 $this->id 是有效的并且它被解析为查询 因为这是唯一的条件。

我不知道是什么导致了这个问题,有什么建议,也许有人遇到过类似的问题。

最佳答案

因为您的语句中间有分号(靠近 else_column = :else_data;)

UPDATE  example_table
SET     some_column = :some_data,
        else_column = :else_data;
        asd_column = :asd_data,
        xyz_column = :xyz_data,
        abc_column = :abc_column,
        qwe_column = :qwe_column,
        fgh_column = :fgh_column,
        tyu_column = :tyu_column,
        bnm_column = :bnm_column
WHERE   id = :user LIMIT 1

将被执行为

UPDATE  example_table
SET     some_column = :some_data,
        else_column = :else_data;

本来应该是这样的

UPDATE  example_table
SET     some_column = :some_data,
        else_column = :else_data,
        asd_column = :asd_data,
        xyz_column = :xyz_data,
        abc_column = :abc_column,
        qwe_column = :qwe_column,
        fgh_column = :fgh_column,
        tyu_column = :tyu_column,
        bnm_column = :bnm_column
WHERE   id = :user

关于php - MySql 查询正在对表中的每条记录执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45616936/

相关文章:

mysqlimport,如何进行正确的文本加载?

php - 为什么这个 PDO 语句会默默地失败?

php - 如何更改 select2 上元素的文本颜色

php - $_SERVER ['SERVER_ADDR' ] 总是设置吗?

mysql - 是否可以在 INSERT 子查询中选择列名?

MySQL:交叉匹配来自两个不同列的记录

php - 不再支持 PayPal IPN 和 fsockopen?

php - Laravel 流利与 Eloquent

mysql - 如何从 RDS Mysql 复制中排除某些表

如果未选中复选框,PHP 会更新数据库