Запрос на изменение PDO - PullRequest
       2

Запрос на изменение PDO

1 голос
/ 19 сентября 2019

Я хочу получить результат моего запроса таким, каким он был до замены соединения с БД с помощью PDO.Как получить запрос таким, каким он был до того, как я реализовал PDO?

Это мой запрос:

$query = 
    "SELECT 
        `id_affirmation`, 
        `affirmation`, 
        `author`, 
        `user_rate`, 
        am.date, 
        am.time, 
        hua.date, 
        hua.time 
    FROM `affirmation_male` am 
    JOIN `history_user_affirmation` hua ON am.id_affirmation = ua.affirmation_id 
    WHERE hua.user_id = '" . $id_user . "' 
    ORDER BY 
        STR_TO_DATE(hua.date, '%d-%m-%Y') DESC, 
        hua.time DESC";

По какой-то причине результат запроса при использовании PDO: date с affirmation_male.Ты знаешь почему?

1 Ответ

1 голос
/ 19 сентября 2019

Ваш запрос возвращает два столбца с одинаковыми именами, поэтому PDO теряется при получении результатов;поскольку каждая запись представлена ​​в виде ассоциативного массива, дубликаты ключей создают неоднозначность (будет сохранен только один ключ).

Вам понадобится создать псевдоним этих столбцов, чтобы убрать неоднозначность:

$query = 
    "SELECT 
        `id_affirmation`, 
        `affirmation`, 
        `author`, 
        `user_rate`, 
        am.date am_date, 
        am.time am_time, 
        hua.date AS hua_date, 
        hua.time AS hua_time
    FROM `affirmation_male` am 
    JOIN `history_user_affirmation` hua ON am.id_affirmation = hua.affirmation_id 
    WHERE hua.user_id = '" . $id_user . "' 
    ORDER BY 
        STR_TO_DATE(hua.date, '%d-%m-%Y') DESC, 
        hua.time DESC";

Примечания:

  • также было бы неплохо добавить префикс кпервые столбцы в запросе с псевдонимом таблицы, к которой они принадлежат, поскольку это делает запрос более читабельным (и позволит избежать конфликтов, если когда-либо имена этих столбцов были доступны более чем в одной таблице, входящей в игру в запросе)

  • Вы можете убрать обратные пометки, чтобы сделать запрос более читабельным, поскольку имена столбцов и таблиц, которые вы цитируете, не содержат специальных символов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...