1

我目前正在使用 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') % line 15, file: index.php

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

是否有任何库或有什么方法可以运行此查询而不会出错?

4

1 回答 1

1

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 参数。只需包含参数名称并指定所需的值,例如以下示例:

  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 参数,并在创建关联的数据库实例之前执行此操作。更改现有数据库实例的参数可能会导致与时间点恢复备份和只读副本不一致。

亚马逊 RDS

于 2015-11-06T13:01:29.910 回答