백업을 테이블에 업로드하여 다음과 같은 테이블을 엽니 다.
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 +613 /usr/share/phpmyadmin/libraries/sql.lib.php
라인 613에서 카운트 함수는 뒤에 괄호가 없기 때문에 항상 참으로 평가됩니다 $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] == '*'))
서버 아파치를 다시 시작하십시오.
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으로 오십시오 .
이제는 잘 작동합니다 🙂
답변
나는 이것을 찾았다 sql.lib.php에서 구문 오류 – PHP 7.2 카운트 ()
그것은 내 구성에서 완벽하게 작동합니다.
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.) 먼저 최신 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.) 아파치 서버를 다시 시작하고 완료하십시오.
답변
파일 편집 :'/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
답변
누군가 DB 내보내기 페이지에서 비슷한 오류가 발생하면 (우분투 18.04 에서이 문제가 발생했습니다) 파일의 551 행 /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
을 코드로 바꿉니다.
if ($options != null && (is_array($options) || $options instanceof Countable) && count($options) > 0) {