phpmyadmin-count():パラメータは、Countableを実装する配列またはオブジェクトである必要があります


468

バックアップをテーブルにアップロードし、次のようなテーブルを開いています。

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に戻りますか?


9
:ような問題に直面している人たちif ( count($articles)){..}CodeIgniterの、彼らが使用する必要がありますif ( count((array)$articles)){..}よう、ここで
fWd82

2
私はphpmyadmin v4.6でこの問題を抱えていましたが、4.8にアップデートすると消えました。、mariadb 10.3と何​​か関係があるようです。phpmyadmin4.6を使用するmariadb 10.1では問題がありませんでした
user889030

私の場合、phpMyAdminが4.7.1であるときにphp 7.3をインストールしたときに問題が発生しました
。php7.0に戻し

回答:


877

/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

95
信じられない。aptmyadminを使用してphpmyadminをインストールしたUbuntu 18.04で動作します。
PNDA

7
テーブルを選択できるように機能しましたが、Dbをエクスポートしようとするとエラーが返されました
Alperian


30
DBエクスポートで同様の問題が発生した場合は、/ usr / share / phpmyadmin / libraries / plugin_interface.lib.phpを編集する必要があります。551行目 if($ options!= null && count($ options)> 0){to _if ($ options!= null && count((array)$ options)> 0){ @alperianなどにとって興味深いかもしれません
Bernd Schuhmacher

5
これは私にはうまくいきませんでした。わかったError in processing request Error code: 500 Error text: Internal Server Error。@Chandra Nakkaのソリューションで問題が解決しました。
Jee

473

最も簡単な方法:

ターミナルで以下のコマンドラインを実行して、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にアクセスします。

今ではうまくいきます:)


39
2018年8月にUbuntu 18.04で動作します:)
LuizGonçalves'18年

4
Ubuntu 16.04で私のために機能しませんでした
SP Singh

2
魅力のような作品
Rameez Rami

2
Ubuntu 19.04で動作します。ありがとう
むるめ

4
nanoのすてきなトリックは、nano +613 filename直接入力して特定の行に移動できることです。
SteffenNielsen

102

私はこの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 )

開いた /usr/share/phpmyadmin/libraries/sql.lib.php

行を変更:括弧を==の前に移動

|| (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;
 }

次の行では、最後に終了する括弧の1つを削除する必要もあります。
フロッピー、

ありがとう。このようなエラーは、適切なインストール可能なパッケージでどのようにリリースされましたか?ちょっとばかげています。
Josh Morel、

1
@floppesいいえ、不正解です。あなたはその終わりの括弧を削除すべきではありません。私はあなたの方法をテストしました、そしてそれは引き起こしましたserver error。@loquaceの回答が受け入れられるべきです。
ロング

スペルをご記入いただき、必要に応じて太字フォントをご利用いただきありがとうございます。1番目と2番目の答えは、彼らが何をしているのかを言わなかったので、私には十分明確ではありませんでした。nanoでの編集は、geditなどとは異なります。
logicbloke

71

Debianでテスト済み、Ubuntuで動作するはずです。

1.)最初に最新のphpMyadminファイルをダウンロードします。

2.)/usr/share/phpmyadminディレクトリにある以前のバージョンのファイルをすべて削除(バックアップ)します。

3.)/usr/share/phpmyadmin/最新のphpmyadminのすべてのファイルをディレクトリに解凍します。

4.)ファイルlibraries/vendor_config.phpを変更し、行を変更します。

define('CONFIG_DIR', '');

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

そして

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

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

5.)Apacheサーバーを再起動して完了。


3
Ubuntu 16.04で動作
pjehan

7
Ubuntu 18.04で動作
Simon Epskamp

5
Ubuntu 18.04、phpMyAdmin 4.8.0.1-私はする必要がありましたmkdir /usr/share/phpmyadmin/tmp; chgrp www-data tmp; chmod g+w tmp;
Billynoah

Ubuntu 16.04は、それを抽出して/usr/share/phpmyadmin機能します。後の手順に従う必要はありませんでした。
tushar.dahiwale

@billynoah新しいインストールでも同じです。tmpディレクトリを作成し、それを777に設定し、Apacheを再起動し、phpMyAdminからログアウトすると、エラーは発生しなくなりました。
JScarry 2018年

38

ファイルを編集'/usr/share/phpmyadmin/libraries/sql.lib.php'

交換(count($analyzed_sql_results['select_expr'] == 1)

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

これは私のために働いた


条件に基づいて機能しましたが、内部500エラーが修正されましたが、古いエラーの問題「phpmyadmin-count():パラメータは配列またはCountableを実装するオブジェクトでなければなりません」は解決されていません。
shashik493 2018年

これは私にはうまくいくようですが、なぜこれが起こったのか誰か知っていますか?私のphpmyadminは問題なく動作していましたが、今日突然突然ログインしましたが、この問題があるように見えますか?Ubuntu 18.04.2 LTS
Wheelsmanx

UBuntu 18.04、wing Nginx、php 7.2で動作します
PHPer

34
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

これは18.04にうまくいきました、ありがとう!サーバーを再起動する必要すらありません-PHPは「ライブ」で解釈されます。
Jelle Veraa

@JelleVeraa、あなたは特別なケースhehehe;)
kaleem

32

DBエクスポートページで同様のエラーが発生した場合(Ubuntu 18.04でこの問題が発生しました)、ファイルの551行目/usr/share/phpmyadmin/libraries/plugin_interface.lib.phpをコードに置き換えます

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

これは私にも役立ちましたが、私は答えとこれの両方をしなければなりませんでした。Ubuntu 18.04
Karuhanga

2
これはエラーメッセージを取り除くために機能しましたが、それによってifステートメントがすべて一緒に回避され、データベースのエクスポートで何も得られないと思います(データベースの完了時にページを更新した後、下部に多数のエラーが表示されます)小さなファイルフットプリントでエクスポート)
Warren Wang

キス、キス、愛してる
Noah Krasser

1
Debian 9では、行551:if ($options != null && count($options) > 0) {を:に置き換えif ($options != null) {ます。その後、エクスポートできます
BitDEVil2K16

これは18.04で
動作


24

ubuntu-18.04で次の手順に進みます。

ステップ1)検索sql.lib.php

次のように表示されます。

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

ステップ2)端末を開き(Alt t)、次のように記述します

sudo /usr/sbin/pma-configure

ステップ3)sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php および以下の機能を検索します。

 

    関数PMA_isRememberSortingOrder($ analyzed_sql_results)
     {
        $ 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)上記の関数を次のものに置き換えます。

     関数PMA_isRememberSortingOrder($ analyzed_sql_results)
     {
        $ 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

ステップ5) sudo service mysql reload

ステップ6) sudo service apache2 reload

それは私のために働きます。


MySQLとapacheのリロードは必要ありません。
タクシアズマ

ファイルの変更後に次のメッセージが表示されました: "— root @ Lalla:〜#/ usr / sbin / pma-secure — phpMyAdminインストールを保護しています... — セットアップスクリプトで構成を書き込むことができません。— root @ Lalla:〜# "
cl-r

22

このファイルを開きます: '/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)

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 && count($ options)> 0){

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

次のコードに置き換えます

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

サーバーを保存して再起動します

sudo /etc/init.d/apache2 restart

ブレースを追加しただけです。しかし、ありがとう。行の終わりにある余分な中括弧を削除しました
redestructa

Macにxamppがインストールされていますが、/ usr / share / phpmyadminフォルダーが見つからなかったため、/ usr / share / phpmyadmin / libraries / sql.lib.phpが存在します。そのために役立ちますか?
Saurabh Verma

18

Phpmyadminを修正済みのバージョンに更新するのが最善の方法だと思います。

debとして公開されるまでは、@ crimson-501の回答のように行うことができます。

  • 最初のステップは、公式のUbuntuリポジトリからPMA(phpMyAdmin)をインストールすることですapt-get install phpmyadmin
  • 次に、usr / shareディレクトリにcdしますcd /usr/share
  • 3番目に、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はパスを定義し、「link.zip」は現在(7/17/18 )PMAの最新バージョン。あなたはここにそれらのリンクを見つけることができますます。
  • この次のステップでは、解凍(apt-get install unzip)が必要です。unzip phpMyAdmin-4.9.4-english.zip。PMAを解凍したので、これを最終的なホームに移動します。
  • cp(コピー)コマンドを使用してファイルを移動しましょう!-rこれはフォルダなので、引数を追加する必要があることに注意してください。cp -r phpMyAdmin-4.9.4-english phpmyadmin
  • 次は、クリーンアップする時間ですrm -rf phpMyAdmin-4.9.4-english

読み続けます!

PMAにログインした後、2つのエラーが発生する場合があります。

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/phpmyadmincp config.sample.inc.php config.inc.phpです。

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 tmpchown -R www-data:www-data /usr/share/phpmyadmin/tmp。最後のコマンドは、Apache Webサーバーがtmpディレクトリーを所有し、その内容を編集できるようにします。

この答えは信じられないほど役に立ちました!私のために問題を解決しました!ありがとう!PS:フグ生成器はオンラインで見つけることができます。
Lucbas

このリンクで、その溶液:devanswers.co/manually-upgrade-phpmyadminが ..置き換えが容易なものとフグのステップを除いて、同様の計画を次の
gwideman

これは、古いバージョンの構成ファイルを編集するよりもはるかに優れたソリューションです。
andromeda

17

/usr/share/phpmyadmin/libraries/sql.lib.phpファイルでこの関数を置き換えてみてください

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;
}

ありがとう!この行は、最後に3つの右角かっこが挿入されていて、2つの右角かっこのみ&&($ analyzed_sql_results ['select_expr'] [0] == '*'))を間違えたときに間違っていました。phpmyadmin 4.6、php 7.2.10、ubuntu 18.4.1で
作業

17

Ubuntu 18.04 LTS

これらは私のために働いたステップです。Ubuntu PPAの自動更新を提供してくれたWilliam Desportesに感謝します。

ステップ1William Desportesの投稿から
$sudo add-apt-repository ppa:phpmyadmin/ppa

ステップ2
$sudo apt-get --with-new-pkgs upgrade

ステップ3
$sudo service mysql restart

mysqlの再起動に問題がある場合は、次のシーケンスで再起動することもできます
$ sudo service mysql stop;
$sudo service mysql start;


2
Ubuntu 18.04 LTSの問題を解決します。受け入れられる答えでなければなりません。
bgaze

15

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;

mysqlをアップグレードする必要はありません...ありがとう@ole
Nitin Vaghani

15

私のために働く.. 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をリロードします。

できた!!!


1
ライン613で、への変更|| (count($analyzed_sql_results['select_expr']) == 1
tnductam

11

私のバージョンのphpmyadmin(4.6.6deb5)では、行613が見つかり、count()の括弧が正しく閉じられていないことに気付きました。これを次のリリースまで一時的に修正するには、次のように変更します。

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

に:

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

関数呼び出しを閉じるための括弧がありません|| (count($ analyzed_sql_results ['select_expr'])== 1は正しいステートメントです
Ruberandinda Patience

どこにあるかわからない人のためのファイルパスは「/usr/share/phpmyadmin/libraries/sql.lib.php」です。
Ali Imran

9

これは、PHPMyAdminの新しいバージョンで修正されています。Ubuntu 18.04.2のUbuntuソフトウェアリポジトリは、バージョン4.6.6.5を保持していますが、現在は4.9.0.1です。PHPMyAdminインストールを更新すると、この問題は解決しますが、その1行のコードを編集するよりも危険な場合があります。これが私がUbuntuサーバーでそれをした方法です。手順は基本的にすべてのオペレーティングシステムで同じです(パスは異なります)。

  1. PHPMyAdminをダウンロードします
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」品質の私にとっては純粋な魔法でした。


私は1と2の順序を入れ替え、wgetの前にcd / tmpを実行しましたが、それとは別に、すばらしいです。ありがとうございました。
Chris

これは私にとってはうまくいきます、簡単な解決策に感謝します!
uestcfei

8

UBUNTU 16.04.3で動作します

usr / share / libraries / sql.lib.php

修正

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

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


5

phpMyAdmin 4.8.3にアップグレードします。これにより、PHP 7.2の互換性の問題が解決されます


5

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

これは614行目で変更したもので、phpmyadminはエラーなしで動作します。必要がある1つ(のカウントの前に、一つ)==。それでおしまい。


4

ファイル '/usr/share/phpmyadmin/libraries/sql.lib.php'を編集します置換:(バックアップを作成)

"|| (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));"

3

こんにちは次は私の同じ問題を完全に解決します(インポート/エクスポートなど):

バグ修正Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04

そう... ubuntu 18.04、mysql、php7.2の下:ターミナル:

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

次の行を見つけます(ctrl + f):

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

それは私にとって551行目でした

そして、次のために変更します。

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

変更を保存するにはctrl + s

ターミナルでは:ctrl + cでget promt ...

そして: sudo systemctl restart apache2

「新しいphpバージョンだと思います。un配列型でcount()またはsizeof()を使用することはできません。配列への強制パラメーターは、このバグを解決する簡単な方法です...」

問題を解決してくれた元の作者に感謝します!共有してみます!


3

/usr/share/phpmyadmin/sql.lib.php昇格された権限でファイルを開き、関数で以下を編集しますPMA_isRememberSortingOrder()

  1. 〜613行目で初期エラーを修正:
    • 交換する || count($analyzed_sql_results['select_expr'] == 1)
    • || (count($analyzed_sql_results['select_expr']) == 1)
  2. 〜行614は、おそらく続く500エラーを修正します:
    • 交換する && ($analyzed_sql_results['select_expr'][0] == '*')))
    • && ($analyzed_sql_results['select_expr'][0] == '*'))

Apacheサーバーを再起動します。 sudo service apache2 restart

Ubuntu 18.04に基づくLinux Mint 19.1で、PhpMyAdmin 4.6.6およびPHP 7.2を使用してテストされています。


3

上記の解決策をすべて試しましたが、うまくいきませんでした。

これを試して:-

PHPの必要なバージョンをインストールし(私の場合は7.0)、ターミナルに次のように入力します。

sudo update-alternatives --config php

出力は次のようになります:-

ここに画像の説明を入力してください

次に、選択番号(私の場合は1)を入力するだけで、任意のバージョンのPHPに切り替えることができます。

これが他の人に役立つことを願っています-:)


2

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)

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

ただし、検索するファイルは次のSql.php場所にあります/opt/lampp/phpmyadmin/libraries/classes/Sql.php

今後の更新、またはまだ見つからない場合:grep -r 'count($analyzed_sql_results' /opt/lampp/phpmyadminディレクトリ内の一致するドキュメントを検索し、それに応じて編集するために使用します


2

関数を置き換えます:

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;
}

2

ファイルを編集 /usr/share/phpmyadmin/libraries/sql.lib.php

エラーでエラーを確認する

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

この行に移動して、関数呼び出しを削除します。

わたしにはできる。


2

私たち全員がファイルを編集または更新しているようです

自動更新が必要な場合は、Ubuntu PPAを使用できます

sudo add-apt-repository ppa:phpmyadmin / ppa

そしてDebianユーザーの場合、Debianの次のバージョンを待つか、PPAを使用する必要があります

Ubuntu 20にはphpMyAdmin 4.9以降のバージョンがあります

トラッカー上のDebianの問題

トラッカーの数えきれないほどの問題

この問題を解決するには、TLDRを最新の4.9または5.0バージョンに更新してください。


2

これは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をリフレッシュ


1

MariaDbとNginxを搭載したUbuntu 18.04では、次のようにファイル/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"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.