【问题标题】:How to add escape $ in Zend framework query如何在 Zend 框架查询中添加转义 $
【发布时间】:2021-08-02 12:08:25
【问题描述】:

我需要在zend框架中添加escape '$'

预期查询:

SELECT * FROM V_HOME_SEARCH sv WHERE sv.NAME LIKE '%gar$_%' ESCAPE '$'

我试过了:

public function selectData($str){
  $select = $this->select();
  $select->setIntegrityCheck(false);
  $select->from(array('sv' => 'V_HOME_SEARCH'));
  $select->where('sv.NAME like (?)', '%'.strtolower($str).'%'); 
  $result = $this->fetchAll($select);
}

如何在上面的代码中添加转义“$”。

提前致谢

【问题讨论】:

  • 很确定这不是一个有效的SELECT 声明。如果我错了,你能链接到这个ESCAPE 子句的文档吗,因为我在任何地方都找不到它
  • @Phil:感谢您的指挥。我正在使用Oracle 数据库docs.oracle.com/cd/B12037_01/server.101/b10759/…
  • 那为什么要标记mysql-real-escape-string
  • @Phil 我不知道它是如何标记为 mysql-real-escape-string
  • 你能不能只在where()调用中包含ESCAPE子句,即$select->where('sv.NAME like (?) ESCAPE \'$\'')

标签: php sql oracle zend-framework zend-db


【解决方案1】:

Zend_Db 似乎没有为带有 ESCAPE 关键字的 Oracle LIKE 子句提供任何支持,因此您所能做的就是将其添加到 where() 调用中

$select->where("sv.NAME LIKE (?) ESCAPE '$'", '%' . strtolower($str) . '%');

【讨论】:

  • @RameshS 不用担心。不过,您可能需要考虑更新到更新的库。我很确定 Zend 没有维护,现在称为 Laminas
猜你喜欢
  • 2011-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
相关资源
最近更新 更多