Как исправить заглавные MySQL запрос в PHP и MySQL

В настоящее время я работаю над сайтом, который использует библиотеку ADODB. На всем сайте все запросы написаны в верхнем регистре.

Проблема в том, что, когда я запускаю запрос, он не работает из-за имени таблицы, которая называется UPPERCASE. Но когда я изменяю имя таблицы на строчные, это работает.

$sql = "SELECT * FROM MEMBERS where USERNAME = '$username'";

$db = ADONewConnection('mysql');
$db->debug = true;
$db->Connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_NAME);

$resultFriends = $db->Execute($sql);

while ($row = $resultFriends->FetchRow()) {
        var_dump($row);
        die;
}

Вот ошибка, которую я получаю:

ADOConnection._Execute (SELECT * FROM MEMBERS, где USERNAME = 'fury', false) % строка 1012, файл: adodb.inc.php

ADOConnection.Execute (SELECT * FROM MEMBERS, где USERNAME = 'fury') % строка 15, файл: index.php

Имейте в виду, я не хочу менять сценарии. Есть 1000 файлов и 10000 мест.

Есть ли какая-либо библиотека, или я могу выполнить эти запросы без ошибок?

1 ответ

Решение

Версия для живого производителя была ядром Linux. но новый сайт разработчиков - Ubuntu.

Я сделал это на Ubuntu/ MySQL CML, и это не сработало.

Решение заключается в том, чтобы перенастроить базу данных mySql в AWS/rdbs.

Вы должны изменить параметр "lower_case_table_names" для вашего экземпляра (ов) БД. До сегодняшнего дня параметр lower_case_table_names не был изменяемым, системное значение по умолчанию - ноль (0) или "имена таблиц сохраняются, как указано, а сравнения чувствительны к регистру". Начиная сразу, значения ноль и единица (имена таблиц хранятся в нижнем регистре и сравнения не чувствительны к регистру). См. Документацию MySQL для получения дополнительной информации о параметре lower_case_table_names.

Параметр lower_case_table_names можно указать с помощью API rds-modify-db-parameter-group. Просто включите имя параметра и укажите желаемое значение, например, в следующем примере:

  rds-modify-db-parameter-group example --parameters "name=lower_case_table_names, value=1, method=pending-reboot" --region us-east-1

Ожидается, что поддержка изменения параметров через Консоль управления AWS будет добавлена ​​позднее в этом году.

установить параметр lower_case_table_names через пользовательскую группу параметров БД и сделать это перед созданием связанного экземпляра БД. Изменение параметра для существующих экземпляров БД может привести к несоответствиям с резервными копиями восстановления на определенный момент времени и с репликами чтения.

Amazon RDS

Другие вопросы по тегам