Przesłałem kopię zapasową do stołu, otwierając stół Widzę to:
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)
Wewnątrz phpMyAdmin ...
PHP to 7.2, serwer to Ubuntu 16.04, zainstalowany wczoraj.
Poszukuję Widziałem, że niektórzy mają ten błąd w kodzie, ale nie znalazłem nikogo, kto otrzymałby go w phpMyAdmin ...
Co powinienem zrobić? Czy to mój błąd? Błąd phpmyadmin? czekać aktualizację? Wrócę do PHP 7.1?
phpmyadmin
countable
alebal
źródło
źródło
if ( count($articles)){..}
w CodeIgniter , powinni użyć:if ( count((array)$articles)){..}
jak tutajOdpowiedzi:
Edytuj plik
/usr/share/phpmyadmin/libraries/sql.lib.php
za pomocą tego polecenia:W linii 613 funkcja zliczania zawsze zwraca wartość true, ponieważ po tym czasie nie ma nawiasu zamykającego
$analyzed_sql_results['select_expr']
. Dokonanie poniższych zamian rozwiązuje ten problem, wówczas będziesz musiał usunąć ostatni nawias zamykający w linii 614, ponieważ jest to teraz dodatkowy nawias.Zastąpić:
Z:
Uruchom ponownie serwer Apache:
źródło
Error in processing request Error code: 500 Error text: Internal Server Error
. Rozwiązanie @Chandra Nakka rozwiązało mój problem.Najłatwiejsza metoda:
Wystarczy uruchomić poniższy wiersz poleceń w terminalu i wrócić do PhpMyAdmin. Teraz działa dobrze :)
Metoda ręczna:
Otwórz plik sql.lib.php
Znajdź
count($analyzed_sql_results['select_expr']
kod w pliku. Możesz to uzyskać na linii ~ 613 . Możesz zobaczyć to poniżej zły kodPo prostu zamień ten zły kod na ten poniżej
Zapisz plik i przejdź do PhpMyAdmin .
źródło
nano +613 filename
, aby przejść bezpośrednio do konkretnej linii.Znalazłem ten PHP 7.2 count () - błąd SYNTAX w sql.lib.php
To doskonale działa w mojej konfiguracji:
otwarty
/usr/share/phpmyadmin/libraries/sql.lib.php
Zmień linię : Przenieś nawias przed ==
w
źródło
server error
. Odpowiedź @ loquace powinna zostać zaakceptowana.przetestowany na Debianie, powinien działać na Ubuntu:
1.) Najpierw pobierz najnowszy plik phpMyadmin.
2.) Usuń (wykonaj kopię zapasową) wszystkie poprzednie wersje plików znajdujące się w
/usr/share/phpmyadmin
katalogu.3.) Rozpakuj do
/usr/share/phpmyadmin/
katalogu wszystkie pliki najnowszego phpmyadmin.4.) Zmodyfikuj plik
libraries/vendor_config.php
i zmień linię:do
i
do
5.) zrestartuj serwer Apache i gotowe.
źródło
mkdir /usr/share/phpmyadmin/tmp; chgrp www-data tmp; chmod g+w tmp;
/usr/share/phpmyadmin
pracy. Nie musiałem wykonywać późniejszych kroków.Edytuj plik :
'/usr/share/phpmyadmin/libraries/sql.lib.php'
Zamień :
(count($analyzed_sql_results['select_expr'] == 1)
Z :
(count($analyzed_sql_results['select_expr']) == 1
to zadziałało dla mnie
źródło
źródło
Jeśli ktoś ma podobny błąd na stronie eksportu DB (miałem ten problem w Ubuntu 18.04), to zastąp wiersz 551 w pliku
/usr/share/phpmyadmin/libraries/plugin_interface.lib.php
kodemźródło
if ($options != null && count($options) > 0) {
:if ($options != null) {
wtedy możesz eksportowaćphpmyadmin 4.7.4 powinien mieć „Naprawiono kilka problemów ze zgodnością z PHP 7.2”
Możliwe, że masz starszą wersję phpmyadmin.
https://www.phpmyadmin.net/news/2017/8/24/phpmyadmin-474-released/
źródło
Wykonaj następujące kroki na ubuntu-18.04:
Krok 1) zlokalizuj
sql.lib.php
Wyświetli się coś takiego:
Krok 2) Otwórz terminal (Alt t) i napisz:
Krok 3)
sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
i wyszukaj poniżej funkcję:Krok 4) Zamień powyższą funkcję na:
Krok 4) Zapisz i zamknij plik oraz poniższe polecenie na terminalu
Krok 5)
sudo service mysql reload
Krok 6)
sudo service apache2 reload
To działa dla mnie .. Goodluck
|| (count($analyzed_sql_results['select_expr']) == 1
ponadto, jeśli nadal napotykasz ten sam problem, wykonaj następujące czynności.
zamień na następujący kod
teraz zapisz i zrestartuj serwer
źródło
Myślę, że najlepszą opcją jest aktualizacja Phpmyadmin do wersji, która ma już to naprawione.
Dopóki nie zostanie opublikowany jako deb, możesz to zrobić jak w odpowiedzi @ crimson-501, którą skopiuję poniżej:
apt-get install phpmyadmin
.cd /usr/share
.rm -rf phpmyadmin
.apt-get install wget
):wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-english.zip"
Pozwól mi wyjaśnić argumenty tej komendy, -P określa ścieżkę i „link.zip” jest obecnie (17/07/18 ) najnowsza wersja PMA. Te linki można znaleźć TUTAJ .apt-get install unzip
)unzip phpMyAdmin-4.9.4-english.zip
. Właśnie rozpakowaliśmy PMA, teraz przeniesiemy go do jego ostatecznego domu.cp
(kopiuj), aby przenieść nasze pliki! Zauważ, że musimy dodać-r
argument, ponieważ jest to folder.cp -r phpMyAdmin-4.9.4-english phpmyadmin
.rm -rf phpMyAdmin-4.9.4-english
.Czytaj dalej!
Możesz teraz zauważyć dwa błędy po zalogowaniu się do PMA.
Problemy te można jednak stosunkowo łatwo naprawić. W przypadku pierwszego wydania wystarczy pobrać edytor i edytować,
/usr/share/phpmyadmin/config.inc.php
ale jest problem, usunęliśmy go! W porządku, wszystko co musisz zrobić to:cd /usr/share/phpmyadmin
&cp config.sample.inc.php config.inc.php
.nano config.inc.php
i skopiuj dynamicznie generowany sekret z dolnej części tej strony: https://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator .Przykład phpMyAdmin Blowfish Secret Variable Entry:
Teraz zapisz i zamknij plik.
mkdir tmp
&chown -R www-data:www-data /usr/share/phpmyadmin/tmp
. Ostatnie polecenie pozwala serwerowi Apache posiadać katalog tmp i edytować jego zawartość.źródło
Spróbuj zastąpić tę funkcję w pliku: /usr/share/phpmyadmin/libraries/sql.lib.php
źródło
Ubuntu 18.04 LTS
To były kroki, które działały dla mnie. Ogromne podziękowania dla Williama Desportesa za zapewnienie automatycznych aktualizacji na ich Ubuntu PPA.
Krok 1 ( z posta Williama Desportesa )
$
sudo add-apt-repository ppa:phpmyadmin/ppa
Krok 2
$
sudo apt-get --with-new-pkgs upgrade
Krok 3
$
sudo service mysql restart
Jeśli masz problemy z ponownym uruchomieniem mysql, możesz również uruchomić ponownie w następującej kolejności
$
sudo service mysql stop;
$
sudo service mysql start;
źródło
Ubuntu 18.10 (grudzień 2018)
Wiersz 613, 614, 615, zamień na:
źródło
Pracuj dla mnie .. Ubuntu 18.04
Znajdź
count($analyzed_sql_results['select_expr']
kod w pliku. Możesz to uzyskać na linii ~ 613.Wystarczy zastąpić kodem:
Zapisz plik i załaduj ponownie PhpMyAdmin.
Gotowy!!!
źródło
|| (count($analyzed_sql_results['select_expr']) == 1
W mojej wersji phpmyadmin (4.6.6deb5) znalazłem wiersz 613 i zdałem sobie sprawę, że nawiasy count () nie zostały poprawnie zamknięte. Aby to naprawić tymczasowo do następnej wersji, po prostu zmień:
do:
źródło
Zostało to naprawione w późniejszych wersjach PHPMyAdmin. Repozytoria oprogramowania Ubuntu dla Ubuntu 18.04.2 zawierają wersję 4.6.6.5, a obecnie są w wersji 4.9.0.1. Aktualizacja instalacji PHPMyAdmin rozwiąże ten problem, ale może okazać się bardziej ryzykowna niż edycja tego wiersza kodu. Oto jak to zrobiłem na moim Ubuntu Server. Kroki są zasadniczo takie same (z inną ścieżką) dla wszystkich systemów operacyjnych.
Sprawdź, czy to działa. Jeśli nie, dobrze ... Masz kopię zapasową, więc przywróć ją i ręcznie edytuj wadliwą linię. Z własnego doświadczenia wynika, że po wykonaniu tej czynności wersja 4.6.6.5 była nie tylko pełna błędów, ale także niezwykle powolna w porównaniu z nową wersją 4.9.0.1. Zwiększenie prędkości było czystą magią dla czegoś, co uważałem za jakość „WordPress”.
źródło
Działa na UBUNTU 16.04.3 Po prostu otwórz
usr / share / libraries / sql.lib.php
modyfikować
|| (count($analyzed_sql_results['select_expr'] == 1)
Do
|| ((count($analyzed_sql_results['select_expr']) == 1)
źródło
Zaktualizuj do phpMyAdmin 4.8.3. rozwiązuje to problemy ze zgodnością PHP 7.2
źródło
|| ((count($analyzed_sql_results['select_expr']) == 1
To właśnie zmieniłem w linii 614 i phpmyadmin działa bez żadnego błędu. Potrzebuję jednego
(
przed obliczeniem, a drugiego)
przedtem==
. Otóż to.źródło
Edytuj plik „/usr/share/phpmyadmin/libraries/sql.lib.php” Zamień: (wykonaj kopię zapasową)
Z:
źródło
Cześć, absolutnie rozwiąż ten sam problem (import / eksport itd.):
Napraw błąd Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04
więc ... pod Ubuntu 18.04, mysql, php7.2: Terminal:
Znajdź następujący wiersz (ctrl + f):
dla mnie to był numer 551
i zmień na:
Ctrl + S, aby zapisać zmiany
oraz w terminalu: ctrl + c, aby uzyskać powrót promt ...
i:
sudo systemctl restart apache2
„Myślę, że w nowej wersji php. Nie można używać count () ani sizeof () z typem un array. Wymuszenie parametru na array jest łatwym sposobem na rozwiązanie tego błędu, ...”
Dzięki za oryginalnego autora za rozwiązanie problemu! Próbuję to udostępnić!
źródło
Otwórz
/usr/share/phpmyadmin/sql.lib.php
plik z podwyższonymi uprawnieniami i edytuj następujące funkcjePMA_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] == '*'))
Zrestartować serwer Apache:
sudo service apache2 restart
.Testowany na Linux Mint 19.1 w oparciu o Ubuntu 18.04, z PhpMyAdmin 4.6.6 i PHP 7.2.
źródło
Wypróbowałem wszystkie powyższe rozwiązania, ale dla mnie nie działało.
Spróbuj tego:-
Zainstaluj wymaganą wersję PHP (w moim przypadku 7.0), a następnie w terminalu wpisz
Wyjście będzie wyglądało tak: -
Następnie możesz przełączyć się na dowolną wersję PHP, po prostu wpisując numer wyboru (w moim przypadku 1).
Mam nadzieję, że to może pomóc innym - :)
źródło
Miałem ten problem podczas korzystania z systemu Windows i powyższe odpowiedzi rozwiązały go dla mnie, jednak po przejściu na system Linux (Ubuntu 18.04 LTS) miałem ten sam problem i nie mogłem znaleźć sposobu, aby go rozwiązać, ponieważ nie widziałem pliku „/usr/share/phpmyadmin/libraries/sql.lib.php”.
Tego pliku sql.lib.php nie było w folderze współdzielonym ani w folderze phpmyadmin / libraries mojego katalogu / opt / lampp - ponieważ korzystałem z xampp na moim Ubuntu. Na podstawie aktualizacji dokonanej w Xampp (ponieważ korzystałem z najnowszej instalacji).
Odpowiedź jest nadal do zastąpienia:
(count($analyzed_sql_results['select_expr'] == 1)
Z:
(count($analyzed_sql_results['select_expr']) == 1
Jednak plik do wyszukania znajduje
Sql.php
się w/opt/lampp/phpmyadmin/libraries/classes/Sql.php
Przyszłe aktualizacje lub jeśli nadal ich nie znajdziesz: użyj,
grep -r 'count($analyzed_sql_results' /opt/lampp/phpmyadmin
aby wyszukać pasujące dokumenty w katalogu i odpowiednio je edytowaćźródło
Zamień funkcję:
źródło
Edytuj plik
/usr/share/phpmyadmin/libraries/sql.lib.php
Zobacz błąd na swoim błędzie
przejdź do tej linii i usuń wywołanie funkcji.
Mi to pasuje.
źródło
Widzę, że wszyscy edytujesz lub aktualizujesz z naszych plików
Dla tych, którzy chcą automatycznych aktualizacji, możesz skorzystać z naszego Ubuntu PPA
sudo add-apt-repository ppa: phpmyadmin / ppa
Użytkownicy Debiana będą musieli poczekać na następną wersję Debiana lub skorzystać z PPA
Ubuntu 20 ma phpMyAdmin 4.9 lub nowszą wersję
Problem z Debianem na naszym trackerze
Policzalne problemy z naszym trackerem
Zaktualizuj TLDR do najnowszej wersji 4.9 lub 5.0, aby rozwiązać ten problem.
źródło
Na Ubuntu 18.04 z MariaDb i Nginx rozwiązałem go, aktualizując plik /usr/share/phpmyadmin/libraries/sql.lib.php w następujący sposób:
Odpowiedź wspomniana przez @Nguyen zgłasza błąd 500, mówiąc:
źródło
Jako błąd w kodzie w pliku conf mogą się różnić (@Jacky Nguyen vs @ odpowiedzi ĦΔŇĐŘΔ ŇΔҜҜΔ) ogólne rozwiązanie odpowiedzią byłoby : a) skorygować logikę warunek w pliku conf sensu (x) lub b) instalowania poprawione / prąd phpmyadmin
Co do a)
otwórz plik z kodem błędu
Dla terminalu ludzie:
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Dla zwykłych ludzi:
sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
znajdź warunek - po prostu wyszukaj
$analyzed_sql_results['select_expr']
teraz logika powinna polegać na sprawdzeniu, czy ta podtablica jest pusta lub czy ma tylko 1 element o wartości „
*
więc w zasadzie blok
pomiędzy
&& $analyzed_sql_results['select_from']
i
&& count($analyzed_sql_results['select_tables']) == 1
powinien wyglądać mniej więcej tak
Jest to dobry przykład tego, dlaczego wcięcie i upiększenie kodu, jeśli zostanie ono poprawnie wpisane, uważam, że tak się nigdy nie stanie, a przynajmniej łatwiej będzie je znaleźć.
źródło