'HY000','SQL包含31个参数标记,但提供了32个参数'access mdb fi'

2024-10-02 12:34:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从MySQL复制到MDB,遇到了一个奇怪的问题。我有个疑问

cur.execute("""UPDATE SIGN_INVENTORY SET DISTRICT=?, COUNTY=?, CITY=?, ROUTE_ID=?, NEXT_INSPECTION_DATE=?, INSP_FREQ=?, GPS_LATITUDE=?, GPS_LONGITUDE=?,
FABRICATOR=?, CONTRACTOR=?, DATE_ERECTED=?, DATE_LAST_MODIFIED=?, BRIDGE_ID=?, STATE_PLANE=?, BEGIN_NODE=?, BEGIN_OFFSET=?,
SPAN_LENGTH=?, NUMBER_SIGNS=?, TOTAL_SIGN_AREA=?, WALKWAY_LENGTH=?, STRUCTURE_TYPE=?, MESSAGE_TYPE=?, VMS_TYPE=?, MATERIAL_TYPE=?,
CHORD_TYPE=?, POLE_TYPE=?, FOUNDATION_TYPE=?, LAST_INSPECTOR=?, LMOD_USERID=?, LMOD_DATE=?, LMOD_TIME=?
WHERE STRUCTURE_NUMBER=?""", (row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10],
                              row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20],
                              row[21], row[22], row[23], row[24], row[25], row[26], row[27], row[28], row[29], row[30],
                              row[31], row[0]))

我发现错误了

^{pr2}$

现在如果我删除最后一行[0],我得到

'HY000', 'The SQL contains 32 parameter markers, but 31 parameters were supplied'

两个数据库中的列完全相同。我在多个其他地方做了非常相似的查询,它们工作得很好。在


Tags: idnumberdatetypemysqlstructurelengthgps
2条回答

我想出来了。在MySQL中,日期字段的存储方式如下

datetime.datetime(2002, 7, 22, 0, 0)

这导致参数计数中断。我需要像这样将值转换为char

^{pr2}$

嘿,伙计,什么都不用做,只要传递31个参数就行了

看1到31是total 31,在u传递行[0]之后,这使得参数总数为32,这就是为什么u会得到这个错误。在

相关问题 更多 >

    热门问题