MySQL を使用して PDO 付きの PHP を使用していますが、問題は SQL ステートメントを実行し、結果を HTML に書き出すことです。その後、別の SQL ステートメントが実行され、返されるべきではない行が返されるという問題が発生します。PHPMyAdmin でこの 2 番目のクエリを実行すると、期待どおりの結果が得られるため、これが正しいことはわかっています。環境は以下の通り(PHP 5.2.17、MySQL 5.30、Apache 2.2.25)。モンキーレンチを状況に投げ込むだけで、私のPCのように機能します。これが役立つ場合のSQLステートメントは次のとおりです。
$unusedContactsQuery = $dbc->prepare("select idContact, contactName
from contactinfo
where iduser = :iduser
and contactAuthorized = 1
and idcontact not in (select a.idcontact from contactinfo a
inner join eventcontacts c on a.idContact = c.idContact
inner join eventschedule b on c.idEventContact = b.idEventContact
where b.idEventContact = :idEventContact
and a.iduser = :iduser
and contactAuthorized = 1)");
*連絡先リスト: Bella Lugosi woody woodpecker Bucky Winters Bella Lugosi woody woodpecker
Bella Lugosi と woody woodpecker は、そのリストの一番上にある最初の 2 つの名前の重複です。最初のクエリは最初の 2 つの名前を返します (そのクエリで rowCount() を実行すると 2 が表示され、2 番目のクエリで rowCount() を実行すると 3 が表示されたため、最後の 3 つの名前は 2 番目から引き戻されました)。クエリ)では、なぜこれが起こっているのか、誰にも分かりますか?(同じクエリが PHPMyAdmin で正しく機能する場合、取得されるべきではない行を引き戻す 2 番目のクエリ)