В настоящее время я пытаюсь переключиться с моей общей учетной записи inmotionhosting (недавно получил службу AWEFUL) на настроенный мной сервер Amazon EC2. У меня проблемы с включением функции шифрования в учетной записи EC2.
В моем PHP-коде весь текст шифруется mcrypt перед вводом в SQL. Я пришел к выводу, что эти символы mcrypt ответственны за все мои запросы, выдающие ошибки. (Я знаю, что это из-за проблем с кодировкой, но поиски в Google по этому вопросу не очень ясны, где мне нужно сосредоточить свое внимание.)
Более упрощенный способ объяснения проблемы. На моей новой учетной записи хостинга этот SQL-запрос не работает:
ОБНОВЛЕНИЕ mydatabase.clients SET firstname = '\' å ».” ɶQ 'WHERE id_client = 65
Но это делает
ОБНОВЛЕНИЕ mydatabase.clients SET firstname = 'Test' WHERE id_client = 65
Итак, это говорит о том, что функция mcrypt использует символы, которые база данных SQL не понимает, и поэтому запросы не работают.
Другая информация для вас ...
Когда я запускаю «SHOW VARIABLES LIKE 'character_set_%'» в рабочей базе данных, я получаю это:
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
Когда я делаю это в неработающей базе данных, я получаю:
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
Я увидел разницу в character_set_database и запустил эту строку кода:
ALTER DATABASE mydatabase DEFAULT CHARACTER SET latin1
Он успешно изменил значение character_set_database на "latin1", чтобы соответствовать другому, но не решил проблему.
Наконец, все мои столбцы в моих таблицах используют параметры сортировки "latin1_swedish_ci"
Любая помощь, которую вы можете оказать, будет очень признательна!