我有一个带有多个条件检查的查询。 我想添加条件以检查with子句。 我这样尝试过。
$params1['email'] =$DB->sql_like('email', '%'.$voucher_query.'%');
,并且我将params1值传递给查询条件。我得到的查询不同,它不起作用。 这是我得到的查询。
SELECT COUNT('x') FROM tbl_order WHERE active_ind = ? AND id = ? AND email = ? [array ( 0 => 1, 1 => 236909, 2 => 'email LIKE %emelchor% COLLATE utf8_bin ESCAPE \'\\\\\'', )]
电子邮件条件正在检查是否等于而不是完全相同。有人可以帮我吗??
预先感谢
答案 0 :(得分:1)
您尚未显示要检索记录的函数调用,但我想它看起来像:
$DB->get_records('order', $params);
这种简单的DB语法仅适用于equals比较,如果您想做更复杂的事情,则需要重写它以使用get_records_select函数代替,例如
$select = 'active_ind = :ind AND id = :id AND '.$DB->sql_like('email', ':email');
$email = '%'.$DB->sql_like_escape($voucher_query).'%';
$params = ['ind' => $ind, 'id' => $id, 'email' => $email];
$result = $DB->get_records_select('order', $select, $params);