Php PDO绑定参数占位符PostgreSQL冲突

Php PDO绑定参数占位符PostgreSQL冲突,php,postgresql,pdo,placeholder,Php,Postgresql,Pdo,Placeholder,我将postgres用于数据库,注意到PDO为变量绑定保留了一些postgres语法特性,例如: 检查hstore是否有键SELECT*FROM t WHERE store?“键“ 设置变量类型从t中选择id::integer 我怎样才能避免这种情况?也许有人可以分享更多这样的例子?我不认为PDO中有占位符的转义机制 解决办法: 要在Postgres中强制转换值,可以使用符合SQL的版本:CAST(id为整数) 对于hstore?操作符,您可以使用exist(hstore,text)功能 :

我将postgres用于数据库,注意到PDO为变量绑定保留了一些postgres语法特性,例如:

检查hstore是否有键
SELECT*FROM t WHERE store?“键“

设置变量类型
从t中选择id::integer


我怎样才能避免这种情况?也许有人可以分享更多这样的例子?

我不认为PDO中有占位符的转义机制

解决办法:

  • 要在Postgres中强制转换值,可以使用符合SQL的版本:
    CAST(id为整数)
  • 对于hstore
    操作符,您可以使用
    exist(hstore,text)
    功能
:

不能在同一SQL语句中同时使用命名参数标记和问号参数标记;选择一个或另一个参数样式

因此,如果使用命名参数,使用
运算符应该是安全的,反之亦然


事实证明,你不能。它会产生错误:
混合了命名参数和位置参数

请您澄清问题的确切原因?您对
PDO参数占位符有问题吗?我找到了一种替代使用的方法?hstore参数,所以,是的。但问题不在于如何解决问题?占位符,但如何允许使用它,或者更确切地说如何使用标准postgresql功能和pdo绑定。