如何在 php 和 mysql 中修复 mysql 大写查询

How to fix mysql uppercase query in php and mysql

我目前正在开发使用 ADODB 库的网站。在整个网站中,所有查询均以大写形式书写。

问题是当我 运行 查询时它不起作用,因为 table 名称是大写的。但是当我将 table 名称更改为小写时它起作用了。

$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 where USERNAME = 'fury', false) % line 1012, file: adodb.inc.php

ADOConnection.Execute(SELECT * FROM MEMBERS where USERNAME = 'fury') % line 15, file: index.php

请记住,我不想更改脚本。有 1000 个文件和 10000 个位置。

有没有图书馆或有什么方法可以运行这个查询没有错误?

live sire 的版本是 linux 内核。但新的开发站点是 ubuntu.

我在 ubuntu/mysql CML 上做了这个,但没有用。

解决方案是我必须在 AWS/rdbs

中重新配置 mySql 数据库

您必须修改数据库实例的“lower_case_table_names”参数。在今天之前,lower_case_table_names 参数不可修改,系统默认值为零 (0) 或“table 名称按指定存储并且比较区分大小写。”立即开始,允许值为零和一(table 名称以小写形式存储,比较不区分大小写)。有关 lower_case_table_names 参数的详细信息,请参阅 MySQL 文档。

可以通过rds-modify-db-parameter-group API指定lower_case_table_names参数。只需包含参数名称并指定所需的值,例如以下示例:

  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