phpmyadmin - count():参数必须是数组或实现Countable的对象

我已经上传了备份到一个表,打开表我看到这个:

Warning in ./libraries/sql.lib.php#601
count(): Parameter must be an array or an object that implements Countable


Backtrace


./libraries/sql.lib.php#2038: PMA_isRememberSortingOrder(array)
./libraries/sql.lib.php#1984: PMA_executeQueryAndGetQueryResponse(
array,
boolean true,
string 'alternativegirls',
string 'tgp_photo',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `tgp_photo`',
NULL,
NULL,
)
./sql.php#216: PMA_executeQueryAndSendQueryResponse(
array,
boolean true,
string 'alternativegirls',
string 'tgp_photo',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `tgp_photo`',
NULL,
NULL,
)
./index.php#53: include(./sql.php)

在phpMyAdmin……

PHP是7.2,服务器是Ubuntu 16.04,昨天安装的。

我看到一些人在他们的代码中有这个错误,但我没有发现任何人在phpMyAdmin中收到它…

我该怎么办?这是我的错误吗?phpmyadmin错误?等待更新?回到PHP 7.1?

465706 次浏览

phpmyadmin 4.7.4应该有“修复了与PHP 7.2的几个兼容性问题”

您可能有一个较旧版本的phpmyadmin。

https://www.phpmyadmin.net/news/2017/8/24/phpmyadmin-474-released/

在Debian上测试,应该在Ubuntu上工作:

1)。首先下载最新的phpMyadmin文件。

2)。删除(备份)位于/usr/share/phpmyadmin目录下的所有先前版本文件。

3)。将phpmyadmin最新版本的所有文件解压到/usr/share/phpmyadmin/目录。

4)。修改文件libraries/vendor_config.php并更改行:

define('CONFIG_DIR', '');

define('CONFIG_DIR', '/etc/phpmyadmin/');

而且

define('TEMP_DIR', './tmp/');

define('TEMP_DIR', '/tmp/');

5.)重启apache服务器,完成。

我找到了这个PHP 7.2 count() - sql.lib.php中的语法错误

这完美地工作在我的配置:

Debian 9,
PHP 7.2.3-1+0~20180306120016.19+stretch~1.gbp81bf3b (cli) (built: Mar  6 2018 12:00:19) ( NTS )

# EYZ1 # EYZ0

改变行:在= =之前移动圆括号

|| (count($analyzed_sql_results['select_expr'] == 1) ,,($ analyzed_sql_results [' select_expr '] [0 ] == '*')))

function PMA_isRememberSortingOrder($analyzed_sql_results){


return $GLOBALS['cfg']['RememberSorting']
&& ! ($analyzed_sql_results['is_count']
|| $analyzed_sql_results['is_export']
|| $analyzed_sql_results['is_func']
|| $analyzed_sql_results['is_analyse'])
&& $analyzed_sql_results['select_from']
&& ((empty($analyzed_sql_results['select_expr']))
|| ((count($analyzed_sql_results['select_expr'] ) == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*')))
&& count($analyzed_sql_results['select_tables']) == 1;
}

使用以下命令编辑文件/usr/share/phpmyadmin/libraries/sql.lib.php:

sudo nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php

在第613行,count函数的计算结果总是为true,因为在$analyzed_sql_results['select_expr']之后没有右括号。做下面的替换可以解决这个问题,然后你需要删除行614上的最后一个右括号,因为它现在是一个额外的括号。

替换:

((empty($analyzed_sql_results['select_expr']))
|| (count($analyzed_sql_results['select_expr'] == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*')))

:

((empty($analyzed_sql_results['select_expr']))
|| (count($analyzed_sql_results['select_expr']) == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*'))

重启服务器apache:

sudo service apache2 restart
试着在文件中替换这个函数: /usr/share/phpmyadmin/libraries/sql.lib.php < / p >
function PMA_isRememberSortingOrder($analyzed_sql_results)
{
return $GLOBALS['cfg']['RememberSorting']
&& ! ($analyzed_sql_results['is_count']
|| $analyzed_sql_results['is_export']
|| $analyzed_sql_results['is_func']
|| $analyzed_sql_results['is_analyse'])
&& $analyzed_sql_results['select_from']
&& ((empty($analyzed_sql_results['select_expr']))
|| (count($analyzed_sql_results['select_expr']) == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*'))
&& count($analyzed_sql_results['select_tables']) == 1;
}
编辑文件'/usr/share/phpmyadmin/libraries/sql.lib.php' (make backup)

"|| (count($analyzed_sql_results['select_expr'] == 1)
&&($analyzed_sql_results['select_expr'][0] == '*')))
&& count($analyzed_sql_results['select_tables']) == 1;"

:

"|| (count($analyzed_sql_results['select_expr']) == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*')
&& (count($analyzed_sql_results['select_tables']) == 1));"

适用于UBUNTU 16.04.3 打开

usr / share /图书馆/ sql.lib.php

修改

# EYZ0

# EYZ0

最简单的方法:

只需在终端的命令行下面运行这个,然后回到PhpMyAdmin。

sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" /usr/share/phpmyadmin/libraries/sql.lib.php

手动方法:

打开sql.lib.php文件

nano /usr/share/phpmyadmin/libraries/sql.lib.php

找到文件中的count($analyzed_sql_results['select_expr']代码。你可以在~613行得到这个。您可以在下面看到错误的代码

|| (count($analyzed_sql_results['select_expr'] == 1)

把错误的代码替换成下面这个

|| ((count($analyzed_sql_results['select_expr']) == 1)

保存文件并转到PhpMyAdmin

编辑文件/usr/share/phpmyadmin/libraries/sql.lib.php

在错误上看到一个错误

./libraries/sql.lib.php#2038: PMA_isRememberSortingOrder(array)
./libraries/sql.lib.php#1984: PMA_executeQueryAndGetQueryResponse(

转到这一行并删除函数调用。

这对我很管用。

# EYZ1: # EYZ0

# EYZ1: # EYZ0

# EYZ1: # EYZ0

这对我很有效

在ubuntu-18.04上执行以下步骤:

步骤1)定位sql.lib.php

它将显示如下内容:

/usr/share/phpmyadmin/libraries/sql.lib.php

打开终端(Alt t)并写入:

sudo /usr/sbin/pma-configure
< p > # EYZ1 # EYZ0 搜索下面的函数:



function PMA_isRememberSortingOrder($analyzed_sql_results)
{
return $GLOBALS['cfg']['RememberSorting']
&& ! ($analyzed_sql_results['is_count']
|| $analyzed_sql_results['is_export']
|| $analyzed_sql_results['is_func']
|| $analyzed_sql_results['is_analyse'])
&& $analyzed_sql_results['select_from']
&& ((empty($analyzed_sql_results['select_expr']))
|| (count($analyzed_sql_results['select_expr'] == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*')))
&& count($analyzed_sql_results['select_tables']) == 1;
}


将上述函数替换为:



function PMA_isRememberSortingOrder($analyzed_sql_results)
{
return $GLOBALS['cfg']['RememberSorting']
&& ! ($analyzed_sql_results['is_count']
|| $analyzed_sql_results['is_export']
|| $analyzed_sql_results['is_func']
|| $analyzed_sql_results['is_analyse'])
&& $analyzed_sql_results['select_from']
&& ((empty($analyzed_sql_results['select_expr']))
|| (count($analyzed_sql_results['select_expr']) == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*'))
&& count($analyzed_sql_results['select_tables']) == 1;
}


步骤4)保存&在终端上关闭文件和以下命令

sudo /usr/sbin/pma-secure

# EYZ1 # EYZ0

# EYZ1 # EYZ0

这对我有用。 古德勒克< / p >

如果有人在DB导出页面中有类似的错误(我在Ubuntu 18.04中有这个问题),然后用代码替换文件/usr/share/phpmyadmin/libraries/plugin_interface.lib.php中的551行

if ($options != null && (is_array($options) || $options instanceof Countable) && count($options) > 0) {

我在使用windows时遇到了这个问题,上面的响应为我解决了这个问题,但是当我切换到linux (ubuntu 18.04 LTS)时,我也有同样的问题,不知道如何解决,因为我没有看到文件“/usr/share/phpmyadmin/libraries/sql.lib.php”。

这个sql.lib.php文件不在我的/opt/lampp目录的共享文件夹或phpmyadmin/libraries文件夹中-因为我在我的ubuntu上使用xampp。 基于对xampp的更新(因为我使用了到目前为止最新的安装)设置

答案仍然是替换:(count($analyzed_sql_results['select_expr'] == 1)

: # EYZ0

但是要查找的文件是在/opt/lampp/phpmyadmin/libraries/classes/Sql.php中找到的Sql.php

将来的更新,或者如果您仍然没有找到它:使用grep -r 'count($analyzed_sql_results' /opt/lampp/phpmyadmin在目录中搜索匹配的文档并进行相应的编辑

升级到phpMyAdmin 4.8.3。这解决了PHP 7.2的兼容性问题

在Ubuntu 18.04上,使用MariaDb和Nginx,我通过更新文件/usr/share/phpmyadmin/libraries/sql.lib.php解决了这个问题,如下:

|| (count($analyzed_sql_results['select_expr']) == 1

@Nguyen提到的答案抛出了一个500错误,说:

FastCGI sent in stderr: "PHP message: PHP Parse error:  syntax error, unexpected ')', expecting ';' in /usr/share/phpmyadmin/libraries/sql.lib.php on line 614"

嗨,下面绝对解决了我同样的问题(导入/导出等):

修复错误Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04 .php

< p >所以…在ubuntu 18.04下,mysql, php7.2: 终端:< / p >
sudo gedit /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

# EYZ0

if ($options != null && count($options) > 0) {

我是在551行

和# EYZ0

if ($options != null && count((array)$options) > 0) {

Ctrl +s保存更改

在终端:ctrl+c for get back prompt…

# EYZ1 # EYZ0

“我认为在新的php版本。它不能对unarray类型使用count()或sizeof()。强制参数数组是解决这个错误的简单方法,…”

感谢原作者解决问题!我试着分享它!

Works on UBUNTU 18.04




Edit file: '/usr/share/phpmyadmin/libraries/sql.lib.php'
Replace: (count($analyzed_sql_results['select_expr'] == 1)
With:  ((count($analyzed_sql_results['select_expr']) == 1)


Restart the server
sudo service apache2 restart

我认为最好的选择是将Phpmyadmin更新到一个已经修复了这个问题的版本。

在它作为deb发布之前,你可以像在@crimson - 501的答案中那样做,我将在下面复制:

  • 你的第一步是从官方Ubuntu repo安装PMA (phpMyAdmin): apt-get install phpmyadmin
  • 接下来,cd到usr/share目录:cd /usr/share
  • 第三,删除phpmyadmin目录:rm -rf phpmyadmin
  • 现在我们需要下载最新的PMA版本到我们的系统上(注意你需要wget: apt-get install wget): wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-english.zip" 让我解释一下这个命令的参数,-P定义了路径,“the link.zip”是目前(7/17/18)最新版本的PMA。你可以找到这些链接在这里.
  • 对于下一步,您需要解压缩(apt-get install unzip): unzip phpMyAdmin-4.9.4-english.zip。我们刚刚拉开了PMA的拉链,现在我们将把它移动到它的最终归宿。
  • 让我们使用cp(复制)命令来移动我们的文件!注意,我们必须添加-r参数,因为这是一个文件夹。# EYZ2。
  • 现在是时候清理了:rm -rf phpMyAdmin-4.9.4-english

继续阅读!

在登录到PMA之后,您现在可能会注意到两个错误。

the configuration file now needs a secret passphrase (blowfish_secret). phpmyadmin
The $cfg['TempDir'] (./tmp/) is not accessible. phpMyAdmin is not able to cache templates and will be slow because of this.

然而,这些问题相对容易解决。对于第一个问题,你所要做的就是抓住你的编辑器选择和编辑/usr/share/phpmyadmin/config.inc.php,但有一个问题,我们删除了它!没关系,你所要做的就是:cd /usr/share/phpmyadmin &# EYZ2。

示例phpMyAdmin Blowfish秘密变量入口:

/*
* This is needed for cookie based authentication to encrypt password in
* cookie
*/
$cfg['blowfish_secret'] = '{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V';
/* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

现在保存并关闭文件。

  • 现在我们为PMA创建一个tmp目录:mkdir tmp &# EYZ1。最后一个命令允许Apache web服务器拥有tmp目录并编辑它的内容。

Ubuntu 18.10(2018年12月)

第613、614、615行,替换为:

        || count($analyzed_sql_results['select_expr']) == 1
&& ($analyzed_sql_results['select_expr'][0] == '*'))
&& count($analyzed_sql_results['select_tables']) == 1;

打开/usr/share/phpmyadmin/libraries/sql.lib.php

sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php

按ctrl+w搜索(count($analyzed_sql_results['select_expr'] == 1) < / p >

Find: count($analyzed_sql_results['select_expr'] == 1)


Replace With:  (count($analyzed_sql_results['select_expr']) == 1)

重新启动服务器

 sudo service apache2 restart

此外,如果你仍然面临同样的问题,那么就做下面的事情。

打开/usr/share/phpmyadmin/libraries/plugin_interface.lib.php文件

sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

查找:if ($options != null &&计数($options) > 0) {

Ctrl+w : if ($options != null && count($options) > 0) {

替换为以下代码

if ($options != null && count((array)$options) > 0) {

现在保存并重新启动服务器

sudo /etc/init.d/apache2 restart

由于conf文件中的代码错误可能会有所不同(@Jacky Nguyen vs @ĦΔŇĐŘΔ ŇΔҜҜΔ answers),
通解的答案将是 a)修正conf文件中的条件逻辑使之有意义
(x)或b)安装正确的/当前phpmyadmin

至于a)

  1. 打开错误代码
    的文件 终端用户:sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
    对于普通用户:sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php

  2. 查找条件-基本上搜索$analyzed_sql_results['select_expr']

  3. 现在的逻辑应该是检查这个子数组是否为空,或者它是否只有一个值为"*的元素

  4. 所以基本上在&& $analyzed_sql_results['select_from']
    && count($analyzed_sql_results['select_tables']) == 1之间的块

    应该是这样的

&& (
empty($analyzed_sql_results['select_expr']) //the sub array is empty,
|| //or,
(
(count($analyzed_sql_results['select_expr']) == 1) //it has just 1 element
&& //and at the same time
($analyzed_sql_results['select_expr'][0] == '*') //the 1 element value is "*"
)
)

这是一个很好的例子,为什么缩进和美化你的代码,如果它将缩进正确,我相信这永远不会发生,或者至少,会更容易找到。

is_countable函数(PHP 7 >= 7.3.0)

is_countable -验证变量的内容是可数值。

使用此函数的方法如下:

# EYZ0

它将返回布尔值。更多详情请访问http://php.net/manual/en/function.is-countable.php

打开具有提升权限的/usr/share/phpmyadmin/sql.lib.php文件,并在PMA_isRememberSortingOrder()函数中编辑以下内容:

  1. ~行613修复初始错误:
    • 替换# EYZ0
    • 以# EYZ0
    • 李< / ul > < / >
    • ~行614修复可能会出现的500错误:
      • 替换# EYZ0
      • 以# EYZ0
      • 李< / ul > < / >

重新启动Apache服务器:sudo service apache2 restart

在基于Ubuntu 18.04的Linux Mint 19.1上测试,使用PhpMyAdmin 4.6.6和PHP 7.2。

为我工作。Ubuntu 18.04

sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php

找到文件中的count($analyzed_sql_results['select_expr']代码。您可以在第613行得到这一点。

|| (count($analyzed_sql_results['select_expr'] == 1)

只需用代码替换:

|| ((count($analyzed_sql_results['select_expr']) == 1)

保存文件并重新加载PhpMyAdmin。

完成了! !

我尝试了以上所有的解决方案,但都不适合我。

试试这个:

安装所需的PHP版本(在我的例子中是7.0),然后在终端中键入

sudo update-alternatives --config php

输出如下所示:-

enter image description here

然后,只需输入选择号(在我的例子中是1),就可以切换到任何版本的PHP。

希望这可以帮助其他-:)

基于@jbator的回答,你可以编辑/usr/share/phpmyadmin/libraries/plugin_interface.lib.php并替换这一行:

if ($options != null && count($options) > 0) {

用这些句子:

if ($options != null &&
((is_array($options) || $options instanceof Countable) && count($options) > 0) ||
(method_exists($options, 'getProperties') && $options->getProperties() != null && (is_array($options->getProperties()) || $options->getProperties() instanceof Countable) && count($options->getProperties()) > 0)) {

这样,导出的文件就不会是空的了。

来看看:https://devanswers.co/problem-php-7-2-phpmyadmin-warning-in-librariessql-count/

首先,在编辑之前备份sql.lib.php。 在nano中编辑sql.lib.php .

$ sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php

按CTRL + W搜索(count($analyzed_sql_results['select_expr'] == 1)

将其替换为((count($analyzed_sql_results['select_expr']) == 1)

保存文件并退出。(按CTRL + X,按Y,然后按ENTER)

替换功能:

function PMA_isRememberSortingOrder($analyzed_sql_results) {
return $GLOBALS['cfg']['RememberSorting']
&&!(
$analyzed_sql_results['is_count']
|| $analyzed_sql_results['is_export']
|| $analyzed_sql_results['is_func']
|| $analyzed_sql_results['is_analyse']
)&&
$analyzed_sql_results['select_from']&&
(
empty($analyzed_sql_results['select_expr'])||
count($analyzed_sql_results['select_expr'])==1&&
$analyzed_sql_results['select_expr'][0] == '*'
)
&& count($analyzed_sql_results['select_tables']) == 1;
}

# EYZ0

这是我在第614行中更改的内容,phpmyadmin工作时没有任何错误。 计数前需要一个(==前需要一个)。就是这样。< / p >

这些解决方案都不适合我 你需要更新phpmyadmin到最新,按照这里的指示

https://askubuntu.com/questions/947805/how-to-upgrade-phpmyadmin-revisited < a href = " https://askubuntu.com/questions/947805/how-to-upgrade-phpmyadmin-revisited " > < / >

这在PHPMyAdmin的后续版本中得到了修复。Ubuntu 18.04.2的Ubuntu软件库的版本是4.6.6.5,而它们目前的版本是4.9.0.1。更新PHPMyAdmin安装可以解决这个问题,但是可能比仅仅编辑一行代码风险更大。下面是我在我的Ubuntu服务器上是怎么做的。对于所有操作系统,步骤本质上是相同的(只是路径不同)。

  1. # EYZ0下载。
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
unzip phpMyAdmin-4.9.0.1-all-languages.zip
  1. 备份旧的PHPMyAdmin安装。
cp -r /usr/share/phpmyadmin ~/phpmyadmin-backup
  1. 在旧的PHPMyAdmin上删除新的PHPMyAdmin
cd phpMyAdmin-4.9.0.1-all-languages
rm -r /usr/share/phpmyadmin/doc/html
cp -R * /usr/share/phpmyadmin/

如果没有,好吧……您有备份,因此恢复它并手动编辑故障行。根据我个人的经验,我发现4.6.6.5版本不仅漏洞百出,而且与新的4.9.0.1相比速度也慢得令人难以置信。对于我认为是“WordPress”质量的东西来说,速度的提高是纯粹的魔法。

对于我的phpmyadmin版本(4.6.6deb5),我找到了第613行,并意识到count()括号没有正确关闭。要在下次发布之前暂时修复这个问题,只需更改:

|| (count($analyzed_sql_results['select_expr'] == 1)

:

|| (count($analyzed_sql_results['select_expr']) == 1

我看到你们都在编辑或更新我们的文件

对于那些想要自动更新的人,你可以使用我们的Ubuntu PPA

sudo add-apt-repository ppa:phpmyadmin/ppa

对于Debian用户,您需要等待Debian的下一个版本或使用PPA

Ubuntu 20有phpMyAdmin 4.9或更高版本

我们的跟踪器上的Debian问题

我们的跟踪器上的计数问题

< p > TLDR 请更新到最新的4.9或5.0版本以解决此问题。< / p >

Ubuntu 18.04 LTS

这些步骤对我很有效。非常非常感谢William Desportes为他们的Ubuntu PPA提供自动更新。

步骤1 (摘自William Desportes的帖子)
$ # EYZ0 < / p >

步骤2
$ # EYZ0 < / p > < p > # EYZ0
$ # EYZ0 < / p > 如果你在重新启动mysql时遇到问题,你也可以按照下面的顺序重新启动 $ sudo service mysql stop;
$ # EYZ0 < / p >

这对我来说在Ubuntu 18.04上效果很好。

打开sql.lib.php文件

nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php

替换这个错误代码:

|| (count($analyzed_sql_results['select_expr'] == 1)

比如这个:

|| ((count($analyzed_sql_results['select_expr']) == 1)

保存文件。

重新启动你的服务器:

sudo service apache2 restart

并刷新PhpMyAdmin

添加phpmyadmin ppa

sudo add-apt-repository ppa:phpmyadmin/ppa
sudo apt-get update
sudo apt-get upgrade
add-apt-repository ppa:phpmyadmin/ppa
apt-get clean
apt-get update
apt-get purge phpmyadmin
apt-get install phpmyadmin

在Ubuntu 18.04上为我修复了它。

这对我很管用;

sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php

线路:614

替换两个代码:

替换:

(count($analyzed_sql_results[‘select_expr’] == 1)

:

(count($analyzed_sql_results[‘select_expr’]) == 1)

替换:

($analyzed_sql_results[‘select_expr’][0] == ‘*’)))

:

($analyzed_sql_results[‘select_expr’][0] == ‘*’))

保存,退出并运行

sudo service apache2 restart
修正count()函数和右括号 /usr/share/phpmyadmin/libraries/sql.lib.php文件中的第604行到第615行:

function PMA_isRememberSortingOrder($analyzed_sql_results)
{
return $GLOBALS['cfg']['RememberSorting']
&& ! ($analyzed_sql_results['is_count']
|| $analyzed_sql_results['is_export']
|| $analyzed_sql_results['is_func']
|| $analyzed_sql_results['is_analyse'])
&& $analyzed_sql_results['select_from']
&& ((empty($analyzed_sql_results['select_expr']))
|| (count($analyzed_sql_results['select_expr']) == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*'))
&& count($analyzed_sql_results['select_tables']) == 1;
}

下面是我利用Chandra Nakka的答案拼凑的一个自动修补脚本。

FILE="/usr/share/phpmyadmin/libraries/sql.lib.php"
PATTERN="(count(\$analyzed_sql_results\['select_expr'\] == 1)"


echo "Verifying broken code in $FILE"


if grep -q "$PATTERN" "$FILE"; then
LINE_NUMBER=$(grep -n "$PATTERN" "$FILE" | cut -d : -f 1)
echo "Broken code found on line: $LINE_NUMBER"
BEFORE_CODE=$(sed -n "$LINE_NUMBER"p "$FILE")


echo -e "\nCreating backup of $FILE"
sudo cp "$FILE" "$FILE-backup-$(date +"%Y-%m-%dT%H%M%S")"
echo "Backup created at: $FILE-backup-$(date +"%Y-%m-%dT%H%M%S")"


echo -e "\nApplying fix"
sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" $FILE
AFTER_CODE=$(sed -n "$LINE_NUMBER"p "$FILE")


# Trim before and after code with xargs
echo "BEFORE: $(echo $BEFORE_CODE | xargs)"
echo " AFTER: $(echo $AFTER_CODE | xargs)"
else
echo "Broken code not found. Maybe it's already been patched 🤷"
fi