gpt4 book ai didi

php - 如何在 zend 文字中转义?

转载 作者:可可西里 更新时间:2023-11-01 06:30:26 25 4
gpt4 key购买 nike

我正在创建一个高级搜索,并希望通过将查询添加到数组中来循环查询:

private $searchFields = [
'as_first_name' => 'users.first_name like "%VALUE%"',
'as_last_name' => 'users.last_name like "%VALUE%"',
'as_payment_history_invoice_num' => 'users.user_id = (SELECT user_id from payment_history where payment_history.invoice_number = "VALUE" LIMIT 1)',
'as_building_num' => 'property_units.building_number like "%VALUE%"',
'as_residents_email' => 'users.email like "%VALUE%"',
'as_property_name' => 'property.name like "%VALUE%"',
'as_phone_num' => 'REPLACE(REPLACE(REPLACE(REPLACE(users.phone, " ", ""), "(", ""), ")", ""), "-", "") = "VALUE"',
'as_unit_num' => 'property_units.unit_number = "VALUE"',
'as_account_status' => 'user_status.status_name = "VALUE"'
];

所以在搜索上我正在做类似的事情..

if (array_key_exists($key, $this->searchFields)) {

$form->get($key)->setValue($val);
$where->NEST->literal(str_replace('VALUE', urldecode($val), $this->searchFields[$key]))->UNNEST;
}

但问题是我没有逃避那里的任何事情。不好。我怎样才能使用相同的结构,同时转义一些东西。

最佳答案

Literal 谓词适用于没有占位符的情况。您应该改用 Expression 谓词。

private $searchFields = [
'as_first_name' => 'users.first_name like "?"',
'as_last_name' => 'users.last_name like "?"',
'as_payment_history_invoice_num' => 'users.user_id = (SELECT user_id from payment_history where payment_history.invoice_number = "?" LIMIT 1)',
'as_building_num' => 'property_units.building_number like "?"',
'as_residents_email' => 'users.email like "?"',
'as_property_name' => 'property.name like "?"',
'as_phone_num' => 'REPLACE(REPLACE(REPLACE(REPLACE(users.phone, " ", ""), "(", ""), ")", ""), "-", "") = "?"',
'as_unit_num' => 'property_units.unit_number = "?"',
'as_account_status' => 'user_status.status_name = "?"'
];

zend-form 值应该已经被解码,所以不需要 urldecode

if (array_key_exists($key, $this->searchFields)) {

$form->get($key)->setValue($val);
$where->NEST->expression($this->searchFields[$key], $val)->UNNEST;
}

我已经有一段时间没有使用 zend-db 了,请确保检查此代码是否实际生成了您需要的查询。

关于php - 如何在 zend 文字中转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42210277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com