#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'