私はphpMyAdminの奇妙なmysqlの、しかし、PHP PDOで行を返す
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
の行セットを取得します。
ここでは何が起こっていますか、どのように修正できますか?
PDO経由でプレースホルダレスでないクエリを実行すると期待どおりの結果が得られますか? – Charles
はい私はゼロの行を持っていました –