【问题标题】:How to fix mysql uppercase query in php and mysql如何修复 php 和 mysql 中的 mysql 大写查询
【发布时间】:2015-11-06 01:10:31
【问题描述】:

我目前正在使用 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 个位置。

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

【问题讨论】:

  • 您有多少查询?如果不是太多,则可能值得通过并正确更新案例。
  • @Fred-ii- 即使它确实有效,您仍然需要单独更新每个查询,对吧?
  • 该网站正在实时服务器中运行。我无法更改表更改。即使代码是血腥的意大利面条和旧

标签: mysql amazon-web-services adodb adodb-php aws-rds


【解决方案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 文档。

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

  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

【讨论】:

  • 但请记住,此参数会导致 mysql 在创建表的那一刻 以小写形式存储所有表名,并在运行的那一刻修改查询它。我不认为像userGroupMapping 这样的现有表会被转换。还取决于 mysql 如何处理该参数,这可能不起作用。 (即,如果它在内部检查userGroupMapping == tolower(USERGROUPMAPPING),因为它认为每个表名存储小写)
  • 编辑:是的,文档说If you plan to set the lower_case_table_names system variable to 1 on Unix, you must first convert your old database and table names to lowercase before stopping mysqld and restarting it with the new variable setting.dev.mysql.com/doc/refman/5.6/en/…
猜你喜欢
  • 2013-02-21
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 2011-07-18
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
  • 2018-10-17
相关资源
最近更新 更多