phpmyadmin(linux)删除mysql SQL查询窗口中的反引号
Posted
技术标签:
【中文标题】phpmyadmin(linux)删除mysql SQL查询窗口中的反引号【英文标题】:phpmyadmin (linux) remove backtick in mysql SQL query window 【发布时间】:2015-04-21 02:10:52 【问题描述】:我想知道对于phpymyadmin中的所有查询(在Linux上)是否可以删除默认SQL查询窗口中的反引号
我在想可能有一个 phpmyadmin 配置文件负责这个设置。
例如: 为了建立一个基于当前表invoices的查询,我首先点击phpmyadmin窗口中的SQL选项卡,然后出现如下:
SELECT * FROM invoices
WHERE 1
如果我随后选择右侧的表列添加到查询中,例如。 invoice_number,然后查询可能显示为:
选择 * 从invoices
哪里invoice_number
我想要的是: 1)对于默认SQL(即当我第一次按SQL选项卡时)读取: SELECT * FROM invoices WHERE 1 和 2)当我使用右侧选定的列构建查询时,它将显示为: SELECT * FROM invoices WHERE invoice_number
等等等等。
在 phpmyadmin 环境中的某个地方肯定有一个配置设置,我可以对其进行调整,这样我构建的 SQL 中就不会出现反引号或 quote_backtick 吗?
任何想法表示赞赏。
【问题讨论】:
它似乎不仅仅是一个配置条目:source(反引号是硬编码的),但您也可以轻松编辑 php 文件... 【参考方案1】:此时修改反引号功能在
中比较容易libraries/Util.class.php:881
将 $do_it 默认值从 true 改为 false
公共静态函数反引号($a_name, $do_it = true) 到 公共静态函数反引号($a_name, $do_it = false)
【讨论】:
Debian 上 phpmyadmin 4.6 中的路径。 /usr/share/phpmyadmin/libraries/Util.php【参考方案2】:实际的source code显示没有这样的配置入口(@987654326@是硬编码的):
一种可能的解决方案是在 sql_query_form.lib.php 中编辑这些行:
line1
$query = PMA_Util::expandUserString(
$GLOBALS['cfg']['DefaultQueryDatabase'], 'backquote'
);
替换为:
$query = PMA_Util::expandUserString(
$GLOBALS['cfg']['DefaultQueryDatabase']
);
line2
$query = PMA_Util::expandUserString(
$GLOBALS['cfg']['DefaultQueryTable'], 'backquote'
);
替换为:
$query = PMA_Util::expandUserString(
$GLOBALS['cfg']['DefaultQueryTable']
);
line3
$html .= '<option value="'
. PMA_Util::backquote(htmlspecialchars($field['Field'])) . '"';
替换为:
$html .= '<option value="'
. htmlspecialchars($field['Field']) . '"';
(它似乎适用于 phpmyadmin 4.0.10。)
【讨论】:
您好 lp_ 感谢您如此迅速地回复。我会看看 - 我找到了你提到的文件。 工作。如果列名包含空格、reserved words 或非 ASCII 字符,则更好的解决方案会去除反引号,但有条件地保留它们。以上是关于phpmyadmin(linux)删除mysql SQL查询窗口中的反引号的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 错误,设置第一个数据库(phpmyadmin,linux 服务器)