【发布时间】:2012-05-08 11:56:45
【问题描述】:
我正在使用 PHP PDO 将 MS Access 系统迁移到 mySQL 系统中。一切正常,直到 PHP 停止读取 Access 表上的某些记录。此表有一个长整数数据类型的 ID 字段。我不知道为什么,但是 ID 从 0 开始到 16949 然后跳转到 36573745 并在 36581986 结束。PDO 没有读取这些更高的数字,我不知道为什么。
无论如何要解决这个问题,我正在尝试更新这些较高的数字以继续较低 ID 的正常序列。但是 Access 无法理解我的查询,我不知道如何让它运行。
这是查询
UPDATE Validador_Manut SET ID = (
SELECT (Max(ID) + 1) FROM Validador_Manut WHERE ID < 100000
) WHERE ID > 100000
它告诉我这个错误Uperation must use an updatable query。
【问题讨论】:
-
PDO 可能会将较大的数字四舍五入为 INT 值。您可能会查看PDO's bind param,因为您已经在尝试 PDO。 (即使该查询看起来不像准备好的语句)
-
@chapman84 我认为 PDO 在欺骗我。
-
您可以尝试将该参数绑定为字符串而不是整数,然后查看您的查询是否有效。这可能会告诉您是否正在发生这种情况。