Хорошо, у меня есть довольно длинный запрос, который не срабатывает только при добавлении оператора IN. Следующий запрос отлично работает в консоли MySQL напрямую, но ничего не возвращает при выполнении в PHP.
$db = mysql_connect('localhost', 'something', 'somepassword');
$query = "SELECT *
FROM alt_table f
INNER JOIN alt_fac_table_c cl ON (f.id = cl.alt_table2_ida)
INNER JOIN alt_table c ON (cl.alt_table_idb = c.id)
LEFT OUTER JOIN alt_table_contacts_c con ON (f.id = con.alt_table_ida)
LEFT OUTER JOIN contacts cc ON (con.alt_table_idb = cc.id)
WHERE c.name = 'myname'
AND f.state IN ('AL','FL') ORDER BY fname;";
$result = mysql_query($query);
Проблема не в соединении с базой данных и не в самом запросе. Очевидно, что я переименовал пару вещей, но запрос остался тем же. В PHP он ничего не возвращает (ни ошибок, ничего), но в SSH/Console он возвращает все строки, которые мне нужны.
Если я уберу "AND f.state IN ('AL','FL') ORDER BY fname;";", запрос работает, но выдает все штаты. Итак, главный вопрос... есть ли у PHP проблема с оператором IN?
UPDATE FIX В итоге проблема оказалась в данных поста. Я отправлял одинарные кавычки для 'AL',FL'. Очевидно, что при постинге они как-то странно кодировались. Я предполагаю, что это какая-то функция безопасности. Я убрал кавычки из сообщения и добавил их вместо этого в PHp на стороне сервера, и все работает.