regex — php preg_match_all избегать кавычек

внутри ядра Moodle, при отправке запроса в базу данных есть вызов preg_match_all ищу: (двоеточие), чтобы найти параметры запроса.

У меня есть строка (внутри «»), состоящая из цифр, двоеточия и буквы ( «102516101: т»).

Конечно, это не означает, что для параметра. все же Moodle ожидает, что один из-за двоеточия (:).

Как я могу предотвратить preg_match_all заглянув внутрь кавычки?
или у кого-нибудь есть другая идея?

0

Решение

Согласно комментариям, оставленным выше, вы должны явно указать переменные, используемые в вашем операторе SQL. Другими словами, вы не должны создавать свой оператор SQL вручную или необходимый минимум.

Пример:

$sql = "SELECT * FROM {groups} WHERE name = :name";
$params = array('name' => '102516101:t');
$DB->execute($sql, $params);

Вы также заметите, что имена таблиц указаны так: {table_name}, они автоматически расширяются с правильным префиксом.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector