私は同等のZendの選択()文に変換しようとしている次のMySQLのクエリがあります。「?」を使用するにはどうすればよいですか? Zend_Db_Select where()節で?
SELECT `entity_id` FROM `my_table` WHERE `attribute_id` IN (541,554,555,556) \
AND LOWER(REPLACE(TRIM(`value`), '-', '')) REGEXP '([^[:space:]]*)?$param$'
$param
は英数字のみが含まれるようにフィルタリングされていますPHPの変数です。
$db->select()
->from('my_table', 'entity_id')
->where('attribute_id IN (?)', array(541,554,555,556))
->where('LOWER(REPLACE(TRIM('
. $db->quoteIdentifier('value')
. '), "-", "")) REGEXP "([^[:space:]]*)?'
. $param
. '$"');
とき$param = 'foo'
実際に、出力されていますSQL::私が言うことができるようにする必要があり
SELECT `entity_id` FROM `my_table` WHERE (attribute_id IN (541, 554, 555, 556)) \
AND (LOWER(REPLACE(TRIM(`value`), "-", "")) REGEXP "([^[:space:]]*)foo$")
ここ
は、私はZendの選択()文で、これまで持っているものですどこで()を使用して疑問符を置き換えないでください。どうやって?
([^ [:スペース:]] *){0,1} foo $ '。私はまだ '?'を使うことができるかどうか知りたいです。 – nachito
'?'文字をエスケープしてプレースホルダとして扱わないようにするにはどうすればいいですか? –
正確には – nachito