Pdoresources, ошибка в where
Добрый день!
Например, это
Возвращает такую ошибку:
При этом, например, вот так
Не уверен, что я все делаю правильно, но, насколько мне известно, использование строковых функций в where допускается?
Например, это
&where=`{"LEFT(route_max, 6):=":"Moscow"}`
Возвращает такую ошибку:
0.0005219: Could not process query, error #1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TVroute_max`.`value`, 6)` = 'Moscow' AND `modResource`.`parent` IN (169,242,243,' at line 1
При этом, например, вот так
&where=`{"route_max:LIKE":"%Moscow%"}`
все работает нормально.Не уверен, что я все делаю правильно, но, насколько мне известно, использование строковых функций в where допускается?
Комментарии: 6
Попробуй так:
&where=`["LEFT(route_max, 6) = 'Moscow'"]`
Спасибо!
Пробую:
Пробую:
&where=`["LEFT(route_max, 6):NOT LIKE":"%Moscow%"]`
В этом случае запрос формируется вот так:WHERE ( `modResource`.`parent` IN (169,242,243,246,247,248) AND `modResource`.`deleted` = 0 )
Как видишь, условие в него не попадает — он выводит вообще все записи.
Посмотри еще раз внимательно на то, что написал я, и что ты.
Подсказка — у меня нет двоеточий.
Подсказка — у меня нет двоеточий.
Да, вижу, извини.
Но если в таком виде
Но если в таком виде
&where=`["LEFT(route_max, 6) = 'Moscow'"]`
то еще в админке MODX ошибку выдает синтаксическую.
Обожемой. Нужно научить экранировать ковычки в php коде?
Ну и если уж ты пишешь php, то и вызывай через runSnippet:
Ну и если уж ты пишешь php, то и вызывай через runSnippet:
$x = $modx->runSnippet('pdoResource', array(
'parents' => 169,
'where' => array('LEFT(route_max, 6) = "Moscow"'),
//и тд
));
echo $x;
Вот же блин!
Конечно же:
Конечно же:
&where=`["LEFT(route_max, 6) = \"Moscow\""]`
Все работает, спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.