SQLSTATE [HY010]:插入期间的函数序列错误:0

时间:2014-12-03 10:15:26

标签: php pdo odbc

问题

在一个非常简单的插入查询中,使用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]的函数序列错误?

1 个答案:

答案 0 :(得分:2)

PHP bug report读取,用户报告该问题与插入日期的格式有关,因为(在该特定情况下)它缺少月份编号中的一些数字。

这让我想到:某些输入数据的长度可能与表列不兼容。事实上,我写了80个字符,只有60个字符可以适合。

解决方案

检查输入值:长度,格式和类型。其中一个可能与您正在编写的列不兼容。我希望驱动程序的不同信息是诚实的(在我的情况下会截断数据),因为如果你有更好的信息,问题就不会太难解决。

只要我将输入长度减少到允许的最大值以下,查询就会成功执行