在一个非常简单的插入查询中,使用PDO和DB2数据库的ODBC驱动程序,驱动程序返回以下错误:
SQLSTATE[HY010]: Function sequence error: 0 [Microsoft][Driver Manager ODBC] [italian message translation] (SQLExecute[0] at ext\pdo_odbc\odbc_stmt.c:254)
查询本身是一个准备好的语句插入,带有字符串和日期。 [意大利语消息翻译]只是说"功能序列错误"在意大利语。
This SO question报告了同样的问题,但是在SELECT查询期间发生了,这不是我的情况 This PHP bug report报告了同样的问题,但我已经确定这不是我的情况。
为什么简单的插入会导致SQLSTATE [HY010]的函数序列错误?
答案 0 :(得分:2)
从PHP bug report读取,用户报告该问题与插入日期的格式有关,因为(在该特定情况下)它缺少月份编号中的一些数字。
这让我想到:某些输入数据的长度可能与表列不兼容。事实上,我写了80个字符,只有60个字符可以适合。
检查输入值:长度,格式和类型。其中一个可能与您正在编写的列不兼容。我希望驱动程序的不同信息是诚实的(在我的情况下会截断数据),因为如果你有更好的信息,问题就不会太难解决。
只要我将输入长度减少到允许的最大值以下,查询就会成功执行