私はこれを見るテーブルを開いて、テーブルにバックアップをアップロードしました:
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に戻りますか。
ファイル/usr/share/phpmyadmin/libraries/sql.lib.php
を編集します。
Sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
置き換えます:count($analyzed_sql_results['select_expr'] == 1)
あり:(count($analyzed_sql_results['select_expr']) == 1)
サーバーApacheを再起動します。
Sudo service Apache2 restart
これをターミナルのコマンドラインの下で実行して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 に移動します。
今ではうまくいきます:)
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 )
開く /usr/share/phpmyadmin/libraries/sql.lib.php
行の変更 : == の前に括弧を移動
|| ( (count($plicated_sql_results ['select_expr'] ) == 1) &&($ analyze_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'
置換 :(count($analyzed_sql_results['select_expr'] == 1)
あり :(count($analyzed_sql_results['select_expr']) == 1
これは私のために働いた
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 4.7.4は「PHP 7.2との互換性の問題をいくつか解決しました」
たぶんあなたはphpmyadminの古いバージョンを持っているのでしょう。
https://www.phpmyadmin.net/news/2017/8/24/phpmyadmin-474-released/
誰かが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) {
次の手順をubuntu-18.04で進めます。
ステップ1) find 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($ analyze_sql_results) { return $ GLOBALS ['cfg'] ['RememberSorting'] &&! ($ analyze_sql_results ['is_count'] || $ analy_sql_results ['is_export'] || $ analy_sql_results ['is_func'] || $ analy_sql_results ['is_analyse'] ) && $ analysed_sql_results ['select_from'] &&((empty($ designed_sql_results ['select_expr']))) ||(count($ analysed_sql_results ['select_expr']) == 1) &&($plicated_sql_results ['select_expr'] [0] == '*')))) && count($plicated_sql_results ['select_tables'])== 1; [ }
ステップ4) 上記の関数を次のように置き換えます。
関数PMA_isRememberSortingOrder($ analyze_sql_results) { return $ GLOBALS ['cfg'] ['RememberSorting'] &&! ($ analyze_sql_results ['is_count'] || $ analy_sql_results ['is_export'] || $ analy_sql_results ['is_func'] || $ analy_sql_results ['is_analyse'] ) && $ analysed_sql_results ['select_from'] &&((empty($ designed_sql_results ['select_expr']))) ||(count($ analysed_sql_results ['select_expr']) )== 1) &&($ analysed_sql_results ['select_expr'] [0] == '*')) && count($ analyze_sql_results ['select_tables'])== 1; [ }
ステップ4) ターミナルでファイルと以下のコマンドを保存して閉じる
Sudo /usr/sbin/pma-secure
ステップ5) Sudo service mysql reload
ステップ6) Sudo service Apache2 reload
それは私のために働きます.. Goodluck
警告 ./libraries/plugin_interface.lib.php#532に
count():パラメータは配列またはを実装するオブジェクトでなければなりません
phpmyadminのライブラリのcouseはいくつかのパラメータを数えようとします。この行532で、私はこのパスでこのコードを見つけました。
532行目のファイルの編集 /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
:
Sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
if ($options != null && count($options) > 0) {
という行を見つけ、count($options)
をcount((array)$options)
に置き換えます。
Apacheサービスを再起動します。
Sudo service Apache2 restart
新しいphpバージョンでは、 count() または sizeof() をun array typeと一緒に使用することはできません。そのため、ここでパラメータを配列に強制的に変更する必要があります。
ファイル内のこの関数を置き換えてみてください。/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;
}
私のために働く.. 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をリロードしてください。
完了しました。
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;
私は最良の選択肢はPhpmyadminをこれがすでに修正されたバージョンに更新することであると思います。
それがdebとして公開されるまでは、 @ crimson-501 answer にコピーします)のようにすることができます。
apt-get install phpmyadmin
。cd /usr/share
。rm -rf phpmyadmin
。apt-get install wget
が必要です)。wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-english.Zip"
このコマンドの引数を説明します。-Pはパスを定義し、 "link.Zip"は現在(7/17/18)PMAの最新バージョン。あなたはそれらのリンクを見つけることができます HERE 。apt-get install unzip
):unzip phpMyAdmin-4.8.2-english.Zip
。 PMAを解凍しました。今度はそれを最後の家に移動します。cp
copy)コマンドを使用しましょう。これはフォルダなので、-r
引数を追加する必要があることに注意してください。 cp -r phpMyAdmin-4.8.2-english phpmyadmin
。rm -rf phpMyAdmin-4.8.2-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/phpmyadmin
とcp config.sample.inc.php config.inc.php
だけです。
nano config.inc.php
と、このページの下の方から動的に生成された秘密をコピーしてください:_(https://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator 。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! */
ファイルを保存して閉じます。
mkdir tmp
&chown -R www-data:www-data /usr/share/phpmyadmin/tmp
を作成します。最後のコマンドで、Apache Webサーバーはtmpディレクトリを所有し、その内容を編集できます。UBUNTU 16.04.3で動作します。
usr/share/libraries/sql.lib.php
修正する
|| (count($analyzed_sql_results['select_expr'] == 1)
に
|| ((count($analyzed_sql_results['select_expr']) == 1)
ファイル「/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));"
PhpMyAdmin 4.8.3にアップグレードしてください。これはPHP 7.2の互換性の問題を解決します
私はwindowsを使っているときにこの問題を抱えていて上記の応答が私のためにそれを解決した、しかし私がlinux(ubuntu 18.04 LTS)に切り替えたとき私は同じ問題を抱えていた。 '/usr/share/phpmyadmin/libraries/sql.lib.php'。
このsql.lib.phpファイルは、私のubuntuでxamppを使用していたので、私の/ opt/lamppディレクトリの共有フォルダまたはphpmyadmin/librariesフォルダにはありませんでした。 (私は今のところ最新のインストールを使用しているので)セットアップ。
答えはまだ置き換えることです:(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
を使用してディレクトリ内の一致する文書を検索し、それに応じて編集してください。
|| ((count($analyzed_sql_results['select_expr']) == 1
これは私が614行目で変更したもので、phpmyadminはエラーなく動作します。 countの前に(
が1つ、)
の前に==
が1つ必要です。それでおしまい。
phpmyadminを最新に更新する必要があるこれらのソリューションはどれも私にとってはうまくいきませんでした。こちらの手順に従ってください
https://askubuntu.com/questions/947805/how-to-upgrade-phpmyadmin-revisited
このファイルを開く: '/usr/share/phpmyadmin/libraries/sql.lib.php'
Sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
ctrl + wを押して検索します(count($ analysed_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
これは、PHPMyAdminの以降のバージョンで修正されています。 Ubuntu 18.04.2のUbuntuソフトウェアリポジトリには、バージョン4.6.6.5が含まれていますが、現在は4.9.0.1です。 PHPMyAdminインストールを更新するとこの問題は修正されますが、その1行のコードを編集するよりも危険であることが判明する場合があります。これが、Ubuntuサーバーでの方法です。手順は、すべてのオペレーティングシステムで基本的に同じです(パスは異なります)。
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
cp -r /usr/share/phpmyadmin ~/phpmyadmin-backup
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」品質の私にとっては純粋な魔法でした。
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"
機能を交換して下さい:
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/sql.lib.php
ファイルを開き、関数PMA_isRememberSortingOrder()
で次のコードを編集します。
|| 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] == '*'))
とはApacheサーバを再起動してください:Sudo service Apache2 restart
。
PhpMyAdmin 4.6.6およびPHP 7.2を使用して、Ubuntu 18.04をベースにしたLinux Mint 19.1でテスト済み。
それが単一の値であるかどうかにかかわらず、countを使用する必要はありません。これが最初の問題です。あなたはここでそれについてもっと読むことができます http://php.net/manual/en/function.count.php
今すぐcountはNULL、Boolean、String、Integerでは機能しません。これがここの理由であり、あなたは空にカウントを置き換えるだけでよいです。
私がしたことをチェック
&& ((empty($analyzed_sql_results['select_expr']))
|| (!empty($analyzed_sql_results['select_expr'])
&& ($analyzed_sql_results['select_expr'][0] == '*')))
ファイル '/usr/share/phpmyadmin/libraries/sql.lib.php'を編集します。
エラーのエラーを見る
./libraries/sql.lib.php#2038:PMA_isRememberSortingOrder(配列) ./ libraries/sql.lib.php#1984:PMA_executeQueryAndGetQueryResponse(
この行に移動して関数呼び出しを削除してください。
それは私のために働きます。
Confファイルのコード内のエラーが異なる可能性があるので(@Jacky Nguyen対@ĦΔŇĐŘΔŇΔҜҜΔ回答)、
一般的な解決策 答えはです。
a)confファイルの条件ロジックを修正して意味のあるものにします。
(x)またはb)正しい/現在のphpmyadminをインストールする
A)は
エラーコードでファイルを開く
端末の人々のために:Sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
一般の人々のために:Sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
条件を見つける - 基本的に$analyzed_sql_results['select_expr']
を検索する
これで、このサブ配列が空かどうか、または値が "*
"の要素が1つだけあるかどうかを確認することがロジックになります。
だから基本的にブロック && $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 "*" ) )
こんにちは、私の同じ問題を絶対に解決します(インポート/エクスポートなど)。
バグ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でプロンプトを取り戻します...
および: Sudo systemctl restart Apache2
「私は新しいphpバージョンで考える。それはun配列型でcount()またはsizeof()を使うことができない。配列への力のパラメータはこのバグを解決する簡単な方法である、...
問題解決のための原作者に感謝します!私はそれを共有しようとします!
私の場合(Ubuntu 18.04)、上記の解決策はうまくいきませんでした。理由がわからなかった。それから私は私がまた他のいくつかの警告メッセージがあることに気づいた。調査の結果、PHPバージョン(7.2)がPHPMyAdminのバージョンと互換性がないことがわかりました。だから私がしたのは、後のバージョン(バージョン4.8.4)をアップグレードすることだけでした。
is_countable で導入された関数(PHP 7> = 7.3.0)
is_countable - 変数の内容が可算値であることを確認します
次のようにしてこの関数を使ってください。
is_countable ( $var )
ブール値を返します。詳細については http://php.net/manual/ja/function.is-countable.php をご覧ください。
見てみましょう: 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($ analyze_sql_results ['select_expr'] == 1)
((count($plicated_sql_results ['select_expr']))== 1)に置き換えます。
ファイルを保存して終了します。 (Ctrl + Xキーを押し、Yキーを押してからEnterキーを押します)
Phpmyadmin(4.6.6deb5)のバージョンでは、613行目を見つけ、count()括弧が適切に閉じられていないことに気付きました。次のリリースまでこれを一時的に修正するには、単に変更します。
|| (count($analyzed_sql_results['select_expr'] == 1)
に:
|| (count($analyzed_sql_results['select_expr']) == 1