gpt4 book ai didi

MySQL 中的 python (?) 占位符

转载 作者:行者123 更新时间:2023-11-30 22:04:57 24 4
gpt4 key购买 nike

我在 python 中有一个使用 (?) 占位符的 MySQL 查询,我的问题是当我在查询中添加一个 WHERE 子句时,带有一个额外的占位符 (?) SQL 不允许这样做,我认为是因为它分组占位符因此不允许在 where 子句中使用第 6 个占位符。

这是我的代码片段:

self.query.prepare("UPDATE tbl_dev (user_id, dev_ref,dev_mac,dev_ka_der_file_path,dev_ds_der_file_path,dev_type) VALUES (?,?,?,?,?,?) WHERE id=?;")
self.query.bindValue(0, userID)
self.query.bindValue(1, dev_id)
self.query.bindValue(2, dev_mac)
self.query.bindValue(3, dev_ka_cert)
self.query.bindValue(4, dev_ds_cert)
self.query.bindValue(5, dev_type)
self.query.bindValue(6, devID)

self.query.exec_()

基本上它不会除了最后的 devID 占位符,因为我认为它将第 6 个 (devID) 与第一组占位符组合在一起。这在 Python/MySQL 中甚至可能吗?

最佳答案

@vkp 指出语法不正确,有效的解决方案是使用 select 子句,使用 update 子句,没有分组值。解决方案如下。

self.query.prepare("UPDATE tbl_dev SET user_id=?,dev_ref=?,dev_mac=?,dev_ka_der_file_path=?,dev_ds_der_file_path=?,dev_type=? WHERE id=?;")
self.query.bindValue(0, userID)
self.query.bindValue(1, dev_id)
self.query.bindValue(2, dev_mac)
self.query.bindValue(3, dev_ka_cert)
self.query.bindValue(4, dev_ds_cert)
self.query.bindValue(5, dev_type)
self.query.bindValue(6, devID)

self.query.exec_()

关于MySQL 中的 python (?) 占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42118628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com