如何在条件中向现有查询添加类似条件

时间:2019-01-03 14:38:37

标签: php sql-like moodle

我有一个带有多个条件检查的查询。 我想添加条件以检查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 \'\\\\\'', )]

电子邮件条件正在检查是否等于而不是完全相同。有人可以帮我吗??

预先感谢

1 个答案:

答案 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);