如何将“全文”设置为 phpMyAdmin 的默认值?
Posted
技术标签:
【中文标题】如何将“全文”设置为 phpMyAdmin 的默认值?【英文标题】:How to set "full texts" as default for phpMyAdmin? 【发布时间】:2013-07-24 01:19:02 【问题描述】:我正在使用 phpMyAdmin v3.4.10.1deb1 来管理我的 Ubuntu-Server 上的一些 mysql 表,这些表的字段具有 SQL 格式的“TEXT”。显示这些字段时,默认情况下会截断它们。我总是必须单击符号“←T→”才能将文本展开到完整长度。但我不想在每一个查询上都执行此操作,因为这意味着每个查询都会执行两次。
我希望“全文”是默认的。但是我没有找到设置这个的地方。
你能帮忙吗?
【问题讨论】:
【参考方案1】:我在 phpMyAdmin 中有一个选项:Settings > Main Panel > Browse Mode
,称为:Limit column characters
,您可以在其中更改默认字符限制 (50)。但是我不相信您可以将其默认设置为不限制...
从 phpMyAdmin 5 开始,遵循 Alan Dev 的以下评论:主页 -> 常规设置 -> 更多设置 -> 主面板 -> 浏览模式 -> 限制列字符
【讨论】:
谢谢。我确实将此限制设置为 100000。这应该足够了。但是现在,如果我不需要完整的文本,我不再有可能截断它们。 看起来你需要决定是否想要它:-) 我确实决定:我希望“全文”作为默认值。但我不想错过截断文本的可能性。正如我在问题中所说:“我希望‘全文’是默认的。”我没有说:“我想完全摒弃‘截断文本’。” 如果不配置它的PHPMyAdmin使用pma数据库存储配置是不可能的 首页 -> 常规设置 -> 更多设置 -> 主面板 -> 浏览模式 -> 限制列字符【参考方案2】:Dziad Borowy's answer 是正确的,你不能设置“无限制”。
话虽如此,这个线程上的所有答案似乎都忽略了对最大字符数的永久修复,所以这里是:
转到您的 PMA 服务器。找到phpMyAdmin配置文件,config.inc.php
:
locate config.inc.php
使用您选择的文本编辑器查找以下字符串:
$cfg['LimitChars']
将值更改为您想要的任何值(默认为50
):
$cfg['LimitChars'] = 1000;
写完就退出。 PMA 不需要重新启动,更改会自动应用。
【讨论】:
【参考方案3】:它在 docker 容器中运行的版本 5.0.2
对我有用:
docker exec -it [your_container_name] sh
;
apt-get update
;
apt-get install vim
;
vim ./libraries/classes/Display/Results.php
;
按键盘上的字母i
进入vim
中的INSERT 模式;
修改文件底部_getPartialText
函数如下图;
完成文件编辑后,按ESC
键。这会让您退出 INSERT 模式;
要保存文件,请输入 冒号,后跟 wq。例如。 :wq
;
/**
* Truncates given string based on LimitChars configuration
* and Session pftext variable
* (string is truncated only if necessary)
*
* @param string $str string to be truncated
*
* @return mixed
*
* @access private
*
* @see _handleNonPrintableContents(), _getDataCellForGeometryColumns(),
* _getDataCellForNonNumericColumns
*/
private function _getPartialText($str)
$original_length = mb_strlen($str);
/*
if ($original_length > $GLOBALS['cfg']['LimitChars']
&& $_SESSION['tmpval']['pftext'] === self::DISPLAY_PARTIAL_TEXT
)
$str = mb_substr(
$str,
0,
(int) $GLOBALS['cfg']['LimitChars']
) . '...';
$truncated = true;
else
$truncated = false;
*/
$truncated = false;
return [
$truncated,
$str,
$original_length,
];
【讨论】:
【参考方案4】:更改列字符的限制
Select "Browse" option of any table
Select Settings gear icon at top right corner
Change character limit in "Limit column characters box" according to your need
Press Apply
【讨论】:
你显然没有理解我的问题。我要求默认提供全文,但我仍然希望能够在截断文本和全文之间切换。顺便说一句:你的回答有点晚了。我在 6 年前问过这个问题。 我更新了答案,我知道你在 6 年前问过,但是当我在 Google 上搜索截断的列字符时,这个 6 年前的链接首先弹出。所以我正在寻找简单的答案。而且我没有使用 6 岁的 PhpMyAdmin,而是使用最新的。接受的答案不适用于最新版本。我的答案肯定不适合你,因为你等了 6 年。无论如何,我为使用最新版本的其他人回答了我的发现。【参考方案5】:第一:如果没有必要,不要更改核心文件。
要在 PMA 版本 4.5.4.1 中实现这一点,您只需将此行添加到您的 config.inc.php:
if ( !isset($_REQUEST['pftext'])) $_REQUEST['pftext'] = 'F';
默认情况下,这将始终将结果设置为全文,如果需要部分,您可以切换
【讨论】:
请注意:与其他答案相比,this 确实有效。我使用 PMA v4.7.4。因此,在本地主机上,您只需编辑文件:C:\xampp\phpMyAdmin\config.inc.php
,如上所述。
谢谢。在 v4.9.5 中仍然有效。我正在使用 phpmyadmin 的 Ubuntu 包,所以我在 /etc/phpmyadmin/conf.d 下创建了一个名为 fulltexts.php 的文件,其代码由@Greg 提供,该代码使更改与 config.inc.php 完全分开,并且应该可以继续存在升级更容易。【参考方案6】:
是的,这很烦人。
上面的答案 (3) 为我指明了正确的方向,但自从他的回复以来,例程名称已经改变。
我正在使用带有 PHPMyAdmin 4.5.5 版本的 WAMP。
1) 打开位于“C:/WAMP/PHPMyAdmin/libraries”中的文件“DisplayResultsClass.php”。
2) 搜索“私有函数_getFullOrPartialTextButtonOrLink()”
3) 在左大括号“”之后,在上述行之后,添加以下代码行:-
"如果 (!isset($_REQUEST['full_text_button'])) _REQUEST['full_text_button'] = 'F';"
这会打开“全文”单选按钮。
关闭 PHPMyAdmin 并重新打开它。默认保留(当然,直到您更新或重新安装 WAMP 或 PHPMyAdmin!天知道他们为什么没有在配置文件中创建默认值。如果他们这样做了,我当然找不到它。
每次显然这应该是默认值时,我都厌倦了切换到“全文”。这让我觉得作者是故意试图让程序员兴奋起来。
约翰
【讨论】:
【参考方案7】:当前稳定版本(4.5.0)的等效补丁:
diff --git a/libraries/DisplayResults.class.php b/libraries/DisplayResults.class.php
index e435a21..7129c15 100644
--- a/libraries/DisplayResults.class.php
+++ b/libraries/DisplayResults.class.php
@@ -4101,7 +4101,9 @@ class PMA_DisplayResults
elseif (empty($query['pos']))
$query['pos'] = 0;
-
+ if (!isset($_REQUEST['pftext']))
+ $_REQUEST['pftext'] = self::DISPLAY_FULL_TEXT;
+
if (PMA_isValid(
$_REQUEST['pftext'],
array(
【讨论】:
【参考方案8】:这是 hacky 解决方案(对我有用),但需要更改一些 PMA php 文件。如果你知道你在做什么,你可以试试这个:
在您的 phpmyadmin 文件夹中找到此文件:phpmyadmin/libraries/display_tbl.lib.php
在这个文件中定位函数叫做PMA_displayTable_checkConfigParams
在此函数的开头添加以下行:
if (!isset($_REQUEST['display_text'])) $_REQUEST['display_text'] = 'F';
这将默认启用“全文”,让您切换回“部分文本”模式。
请注意,我是在稍微不同的 PMA 版本 (3.5.2.2) 上进行测试的,因此函数/文件名可能不同。
【讨论】:
此解决方法工作正常!在我的 phpMyAdmin 版本中有这一行:$_SESSION['tmp_user_values']['query'][$sql_md5]['display_text'] = 'P';
我必须将最后的P
替换为F
。但它与您描述的相同文件中的功能相同。
进行这种未记录的更改很危险,因为它可能会影响其他地方完全不相关的内容。仅当您了解整个代码库时才进行更改。
在版本 4.7.6 中,将 phpmyadmin/libraries/DisplayResults.php
中的 line 4136
更改为:$query['pftext'] = self::DISPLAY_FULL_TEXT;
他们应该可以在不深入代码的情况下更改它。 “设为默认”按钮会很有意义。我的意思是 6 年后,这些基于代码的解决方案无论如何都已经过时了以上是关于如何将“全文”设置为 phpMyAdmin 的默认值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 phpmyadmin 中将“关系显示列”设置为默认值
如何在 PHPMyAdmin 中为表设置默认排序(即始终“主键 - 降序”)