Zend DB v1 中的 SUBSTR

SUBSTR inside a where with Zend DB v1

我正在使用 Zend DB (v1) 进行查询,但我找不到在查询中包含 SUBSTR 语句的方法,因为有多个参数。

这就是我想要实现的:

    SELECT *
    FROM myTable
    WHERE SUBSTR(myField, myVar1, myVar2) = 'xxx'

我需要使用 Zend DB 标准格式,但 where 似乎不接受多个参数,而我需要将 myField、myVar1、myVar2 作为 PHP 变量传递($myField、$myVar1、$我的变量 2)。 'xxx'在这里不是变量,是固定值。

    $sql = $this->select()
        ->from(["t1" => "myTable"]])
        ->where( ... ); // Not sure how to implement this

有人知道如何实现吗?

好的,就写吧!

 $sql = $this->select()
        ->from(["t1" => "myTable"]])
        ->where("SUBSTR(myField, myVar1, myVar2) = ?", 'XXX')

经过一些尝试和错误后,我发现这个解决方法似乎有效:

$myFieldQuoted = $this->_db->quote($myField);
$myVar1Quoted  = $this->_db->quote($myVar1);
$myVar2Quoted  = $this->_db->quote($myVar2);

$sql = $this->select()
    ->from(["t1" => "myTable"]])
    ->where("SUBSTR($myFieldQuoted, $myVar1Quoted, $myVar2Quoted) = 'xxx'");