php sql查询占位符,php – SQL的扩展占位符,例如WHERE id IN(??)

赏金更新:马克已经得到了非常好的答案.改编为:进入:,在下面.不过,除了DBIx,我还在寻找类似的方案.我只想兼容任何东西.

我需要关于在参数化SQL语句中为“扩展”占位符选择的语法提供建议.因为构建一些构造(IN子句)会阻碍我,所以我决定了一些自动扩展成普通的语法快捷方式?占位符.

我喜欢他们.但是我想把它打包出来,要问自己是否容易理解.

基本上我的新占位符是?和:? (枚举参数)和:&和:和:|和::(用于命名占位符)具有以下用例:

-> db(" SELECT * FROM all WHERE id IN (??) ", [$a, $b, $c, $d, $e])

的??根据我的db()func的$args的数量扩展为?,?,?,?,?,….这一个很清楚,它的语法已经被标准化了. Perls DBIx :: Simple也使用它.所以我很确定这是一个可以接受的想法.

-> db(" SELECT :? FROM any WHERE id>0 ", ["title", "frog", "id"]);

// Note: not actually parameterized attr, needs cleanup regex

承认它我只是喜欢笑脸.基本上这个:占位符将一个关联的$args扩展为纯列名.事实上,它抛出任何$args值.对于INSERT与??结合使用,有时候对于IN子句是非常有用的.但是在这里我已经想知道这个新语法是否合理,或者不仅仅是一个俗名,因为它混合在一起?字符.但不知何故似乎匹配的语法方案很好.

-> db(" UPDATE some SET :, WHERE :& AND (:|) ", $row, $keys, $or);

这里的助记符:扩展为name =:名称对的列表,用逗号分隔.而&是由ANDs加入的column =:列列表.为了平价,我补充说:|. :&但是在UPDATE命令中还有其他用例.

但是我的问题不在于有用性,而是:和:&似乎是可以记住的?

-> db(" SELECT * FROM all WHERE name IN (::) ", $assoc);

有些虽然我也添加::内插一个:named,:value,:list非常像??扩展到?,?,?类似的用例,并且具有统一性.

无论如何,有没有人实行这样的计划?不同的占位符?或者你会推荐简单吗?更新:我知道PHP Oracle OCI接口也可以绑定数组参数,但不使用特定的占位符.我正在寻找类似的占位符语法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值