Задать вопрос
Ответы пользователя по тегу MySQL
  • Сменил хост получил, Field 'поле' doesn't have a default value?

    badbizarre
    @badbizarre Автор вопроса
    Если у вас возникает ошибка mysql:

    «Field xxx doesn’t have a default value»

    это означает, что при вставке или обновлении данных у поля нет значения по умолчанию. Для решения проблемы нужно:

    найти данный запрос и исправить его, добавить необходимое поле;
    в свойствах таблицы указать значение по умолчанию;
    Еще одним способом решения является выключение режима mysql: «Strict Mode», т.е. мы выключаем режим строгого соответствия стандарту MySql.

    Выключить его можно в конфиге my.ini:
    прописав вместо:
    # Set the SQL mode to strict
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    следующий код:
    # Set the SQL mode to strict
    sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    Или выполнив следующий запрос:
    SET @@GLOBAL.sql_mode= ''
    SET @@SESSION.sql_mode= ''
    Ответ написан
    1 комментарий
  • YII2 как составить запрос на Active Record?

    badbizarre
    @badbizarre Автор вопроса
    $subQuery = (new \yii\db\Query())
    		->select('COUNT(*)')
    		->where('s1.`recept_id` = `np_recepty_ingredients`.`recept_id`')
    		->from('np_recepty_ingredients s1');
    		
    $query = (new \yii\db\Query())
    		->select(['np_recepty.*', 'cnt' => $subQuery])
    		->from('np_recepty_ingredients')
    		->join('LEFT JOIN','`np_recepty` ON `np_recepty`.`id` = `np_recepty_ingredients`.`recept_id`')
    		->groupBy('`np_recepty`.`id`')
    		->having('cnt > 0')
    		->orderBy('cnt DESC');


    Выдает запрос один в один как мне надо. Но почему то если делаю в конце ->all() результат будет массив, а мне нужен объект, подскажите что сделать?
    Ответ написан