All streams
Search
Write a publication
Pull to refresh
44
0
sectus @sectus

User

Send message
Давайте искать эти символы на клавиатуре в стандартной раскладке. Мы же программировать собираемся.
I also fear that it may fall into the category of often-abused-features such as eval(), goto, constants, the @ operator, class inheritance and regular expressions.


Как можно злоупотреблять константами?
Жесткая ссылка — переменная, представляющая собой синоним другой переменной, на которую она ссылается. Чтобы создать жесткую ссылку, перед переменной необходимо написать "&".


Откуда терминология?
Сами запросы не идентичны.
Меня это не смутило. Меня это убивает.
ps, кстати, не только индексы без кавычек
Характерно, что stego.php генерирует png, но в коде destego упоминается jpg. С декодированием jpg будут проблемы: ).
RDSergij, пожалуйста, программируйте со включенным display_errors и максимальным error_reporting.
Да, так и будем поступать…
Наши «любимые» массивы
...
where(array('and', 'id=1', array('or', 'type=2', 'type=3')))
...
Так и я про концепцию. Просто интересно как будет выглядеть ветвистое условие с И и ИЛИ.
Эм… как на счёт И и ИЛИ?
Мне очень важно, чтобы форматирование было автоматическим. Поэтому такой подход я использовать не могу. Может так попробовать.
$conditions = $this->findParams
    ->conditions(
        $this->findParams->createCondition()
        ->is('Model.field', 123)
        ->between('Model.field5', 5, 5)
        ->notLike('Model.field8', '%8%'))
    ->recursive(1)
    ->fields('Model.field1', 'DISTINCT Model.field2')
    ->order('Model.created', 'Model.field3 DESC')
    ->group('Model.field')
    ->limit(100)->page(1)->offset(10)
    ->callbacks(true)
    ->get()
;
...
    ->conditions
        ->is('Model.field', 123) // отступили
        ->between('Model.field5', 5, 5)
        ->notLike('Model.field8', '%8%')
        ->up()
    ->recursive(1) // вернулись
...


А как Ваш IDE вот здесь делает ступеньки при автоматическом форматировании?
6. Подставлять пусто. Заменять на 'SELECT * FROM users WHERE user IN()'. Пусть mysql сам на ошибку укажет.

Всё это мой последний вариант.
Поэтому самым правильным в данном случае, с точки зрения результата, будет заменить на '(user AND user IS NULL)'.
5. Свой синтаксис: 'SELECT * FROM users WHERE ?in(user)', чтобы в случае пустого массива заменять на '0=1'. Помимо того, что тут нужен более сложный парсер, тут своя тонкость. Если стоит условие NOT IN или IN, то при любом наборе данных не выберутся строки, в поле которых, по которым делается условие, стоит null. Если же мы будет заменять такое условие на '0=1', то есть шанс получить неожиданный результат.
И при пустом массиве заменять на 'SELECT * FROM users WHERE user BETWEEN 1 AND 0', других вариантов не вижу. Но при таком подходе можно словить кучу варнингов. Ну лишние проверки на стороне mysql.
4. Подставлять всё выражение 'SELECT * FROM users WHERE user ?in'.

Information

Rating
Does not participate
Location
Иркутск, Иркутская обл., Россия
Registered
Activity