У меня есть этот запрос, который я запускаю в phpMyAdmin
SELECT m.msgFrom, m.msgTo, m.msgID, m.subject, m.dateTime, a.username
FROM mailbox m
JOIN accounts a ON ( a.id = IF( m.msgTo =1, m.msgFrom, m.msgTo ) )
WHERE msgTo =1
OR msgFrom =1
AND parentID =0
AND IF( m.msgTo =1, m.fromDelete, m.toDelete ) !=1
ORDER BY DATETIME DESC
LIMIT 250
И я получаю набор строк 0.
При использовании его с PDO PHP и такими местозаполнителями,
$q = $dbc -> prepare("
SELECT m.msgFrom, m.msgTo, m.msgID, m.subject, m.dateTime, a.username
FROM mailbox m JOIN accounts a ON (a.id = IF(m.msgTo = ?, m.msgFrom, m.msgTo))
WHERE msgTo = ? OR msgFrom = ? AND parentID = 0 AND IF(m.msgTo = ?, m.fromDelete, m.toDelete) != 1
ORDER BY dateTime DESC LIMIT 250");
$q -> execute(array($user['id'], $user['id'], $user['id'], $user['id']));
Я получаю набор строк 1, где $user[id'] == 1
.
Что здесь происходит и как я могу это исправить?