【问题标题】:SQL: Invalid parameter number: parameter was not definedSQL:无效的参数号:未定义参数
【发布时间】: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,是定时填写的,为什么?
  • 只是怀疑逗号括起来可能是问题所在。尝试从代码中删除它们并重新编写它们
  • 代码作为插件的一部分可以正常工作。这些值不包含逗号,我自己输入了所有用于测试=/
  • 我会从字段名称中删除单引号(或用反引号替换它们)并将值的印刷引号更改为常规引号。

标签: php mysql pdo


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 2021-12-15
    • 2012-06-13
    • 1970-01-01
    相关资源
    最近更新 更多