我目前正在使用 ADODB 库的网站上工作。在整个网站中,所有查询均以大写字母书写。
问题是当我运行查询时它不起作用,因为表名是大写的。但是当我将表名更改为小写时,它就起作用了。
$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, 文件:adodb.inc.php
ADOConnection.Execute(SELECT * FROM MEMBERS where USERNAME = 'fury') % 第 15 行,文件:index.php
我已经阅读了一些关于它的文章,但这没有帮助。例如 ,如何在 Ubuntu 中使 MySQL 表名不区分大小写?
请记住,我不想更改脚本。有1000个文件和10000个地方。
是否有任何库或有什么方法可以无误地运行此查询?
live sire 的版本是 linux 内核。但新的开发站点是 ubuntu。
我在 ubuntu/mysql CML 上做了这个,但没有用。
解决方案是我必须在 AWS/rdbs 中重新配置 mySql 数据库
您必须修改数据库实例的“lower_case_table_names”参数。在今天之前,lower_case_table_names 参数不可修改,系统默认值为零 (0) 或“表名按指定存储,比较区分大小写。” 立即开始,允许值为零和一(表名以小写形式存储,比较不区分大小写)。有关 lower_case_table_names 参数的更多信息,请参阅 MySQL 文档。
可以通过 rds-modify-db-parameter-group API 指定 lower_case_table_names 参数。只需包含参数名称并指定所需的值,例如以下示例:
预计将在今年晚些时候添加对通过 AWS 管理控制台修改参数的支持。
通过自定义数据库参数组设置 lower_case_table_names 参数,并在创建关联的数据库实例之前执行此操作。更改现有数据库实例的参数可能会导致与时间点恢复备份和只读副本不一致。
亚马逊 RDS