Как добавить подобное условие в существующий запрос в Moodle - PullRequest
0 голосов
/ 03 января 2019

У меня запрос с проверкой нескольких условий.Я хочу добавить условие, чтобы проверить с как предложение.Я попробовал вот так.

$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 голосов
/ 03 января 2019

Вы не показали вызов функции, которую вы выполняете для получения записей, но я думаю, это выглядит примерно так:

$DB->get_records('order', $params);

Этот простой синтаксис БД подходит только для сравнений на равных. Если вы хотите сделать что-то более сложное, вам нужно будет переписать его, чтобы использовать вместо него функцию 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);
...