SQL:无效的参数号:未定义参数

Posted

技术标签:

【中文标题】SQL:无效的参数号:未定义参数【英文标题】:SQL: Invalid parameter number: parameter was not defined 【发布时间】:2018-08-02 11:05:59 【问题描述】:

你们中有人看到这里的错误吗?我现在正在寻找它很长一段时间。我确实计算了 19 个参数和 19 个值,并且列确实接受空值:

Invalid parameter number: parameter was not defined
Error HY093 executing statement:
INSERT INTO 'modx_slides' ('MIGX_formname', 'slider', 'slidelink', 'poster- 
portrait-src', 'poster-landscape-src', 'portrait-src', 'portrait-hres-src', 
'portrait-smup-hres-src', 'landscape-src', 'landscape-hres-src', 'contenttype', 
'headline', 'vartext', 'image-portrait', 'image-landscape', 'resource_id',             
'pos', 'deleted', 'published') VALUES (‘videoItemTpl’, 1, ‘https://test.de', 
‘’, ‘’, ‘’, ‘’, ‘’, ‘image.jpg’, ‘’, 0, ‘Headlineexample’, ‘Sublineexample’, 
‘’, ‘’, 75, 0, 0, 1)
Array
(
    [0] => HY093
    [1] => 
    [2] => 
)

【问题讨论】:

您是否从某处复制粘贴的值? 值是forminputs,是定时填写的,为什么? 只是怀疑逗号括起来可能是问题所在。尝试从代码中删除它们并重新编写它们 代码作为插件的一部分可以正常工作。这些值不包含逗号,我自己输入了所有用于测试=/ 我会从字段名称中删除单引号(或用反引号替换它们)并将值的印刷引号更改为常规引号。 【参考方案1】:

刚刚解决了问题。 PDO 不接受字段名中的常规破折号,在将常规破折号切换为低破折号后一切正常。也许使用双引号将允许使用常规破折号,但由于它是 cms (MODx) 的核心类,我无法更改它。

【讨论】:

以上是关于SQL:无效的参数号:未定义参数的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助查找 PHP 错误的原因:无效的参数号:未定义参数

SQLSTATE [HY093]:参数号无效:未定义参数 - php

“无效参数编号:未定义参数” 插入数据

部署智能合约时获取“未定义”的无效参数数量

由于无效的参数输入,VBA 用户定义的函数未运行

Firebase firestore 云函数显示错误:无效使用类型“未定义”作为 Firestore 参数