I have this query which I run in 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
And I get a rowset of 0.
When using it with PDO PHP and placeholders like so,
$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']));
I get a rowset of 1 where $user[id'] == 1.
What is going on here, and how can I fix it?
AND have an stronger binding than OR in mysql
means
PDO maybe handles this in another way
try
in phpmyadmin