Объединение MySQL и ассоциативный массив?

#php #mysql

#php #mysql

Вопрос:

Я пытаюсь выполнить соединение MySQL следующим образом,

 $q = $dbc -> prepare("SELECT m.* a.username FROM mailbox m JOIN accounts a (m.msgFrom = a.id) WHERE msgTo = ? AND sent = '0'");
$q -> execute(array($user['id']));
while ($msg = $q -> fetch(PDO::FETCH_ASSOC)) {
     echo $msg['username'];
}
 

Я хотел бы извлечь имя пользователя пользователя из учетных записей таблицы, а не просто отображать идентификатор из почтового ящика таблицы, я получаю массив, выполняющий цикл while в запросе,

Похоже, это не работает, есть идеи?

Комментарии:

1. Вы забыли извлечь строки из результата.

2. Это выполняется в цикле while, но все равно терпит неудачу

3. Мне это не кажется. И «сбой» — это не диагноз.

4. Да, это так, исключение ошибки — mysql fail violation 1064

5. запустите команду php typeof для возвращаемых данных, чтобы убедиться, что они не null и имеют правильный тип. ?

Ответ №1:

Вы забыли on в условии соединения, попробуйте это:

 SELECT m.*, a.username 
FROM mailbox m JOIN accounts a on (m.msgFrom = a.id) 
WHERE msgTo = ? AND sent = '0'