好的,我有一个疑问:
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/