1

我遇到了一个错误,“来自 mysql_next_result() 的未处理错误”,这是我以前从未见过的,希望有人能提供任何见解。

我刚刚将我的服务器升级到 ColdFusion 9。大约在同一时间,我更新了一些脚本,添加了一个我现在正在测试的新功能,该功能使用由 @ 符号包围的标签。在我的测试中,我发现我的脚本在没有任何这些标签的情况下工作,但没有这些标签。不幸的是,由于这是在 CFTransaction 块内的单个 CFQuery 中处理的,因此很难查明问题。据我所知,失败的查询类似于:

INSERT INTO galleries_images    (EID, Name, Desc1, Format1, OrderID, category, FullPath, hastags, haskeys, udate)
VALUES              (<CFQUERYPARAM CFSQLTYPE="CF_SQL_INTEGER" VALUE="#EID#">,
<CFQUERYPARAM CFSQLTYPE="CF_SQL_VARCHAR" VALUE="#Name#">,
<CFQUERYPARAM CFSQLTYPE="CF_SQL_VARCHAR" VALUE="#imageProps[2][2]#">,
<CFQUERYPARAM CFSQLTYPE="CF_SQL_INTEGER" VALUE="0">,
<CFQUERYPARAM CFSQLTYPE="CF_SQL_INTEGER" VALUE="#imageProps[2][4]#">,
<CFQUERYPARAM CFSQLTYPE="CF_SQL_INTEGER" VALUE="#catID.ID#">,
<CFQUERYPARAM CFSQLTYPE="CF_SQL_VARCHAR" VALUE="#Source_Dir#\#Name#">,
<CFQUERYPARAM CFSQLTYPE="CF_SQL_INTEGER" VALUE="#hastags#">,
<CFQUERYPARAM CFSQLTYPE="CF_SQL_INTEGER" VALUE="#haskeys#">,
Now());

这些变量的值应大致为:

 EID=24
 Name=Nick001@ord@001@ord@@tags@Pre-Ceremony@tags@.jpg
 imageProps[2][2]=
 imageProps[2][4]=001
 catID.ID=67
 Source_Dir=\Name=01_Nicholas - Camera\Nick001@ord@001@ord@@tags@Pre-Ceremony@tags@.jpg
 hastags=0
 haskeys=0

相同的查询(或一组查询,因为其中 50-100 个在一个 CFQuery 块中运行)将在名称和 source_dir 没有 @ 符号的情况下运行得很好。由于这些在 CFQueryParam 标记中,我认为尽管它们与 MySQL 中的变量声明相关,但它们可以安全使用。有什么想法吗?

4

1 回答 1

2

我追查了这件事的原因,这与我的预期完全不同。事实证明,我的数据库字段之一是 250 个字符,而允许的文件名长度是 255 个字符,这妨碍了我。当我增加数据库字段的大小时,一切都开始工作了。

我不知道为什么我收到了 mysql_next_result() 错误而不是更多信息;也许这是一个通用错误。希望这个小花絮可以帮助处于同样情况的其他人。

于 2012-06-26T20:44:02.503 回答