Ich habe das Backup in eine Tabelle hochgeladen und die folgende Tabelle geöffnet:
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)
Innerhalb von phpMyAdmin ...
PHP ist 7.2, der Server ist Ubuntu 16.04, gestern installiert.
Auf der Suche habe ich gesehen, dass einige diesen Fehler in ihrem Code haben, aber ich habe niemanden gefunden, der ihn in phpMyAdmin erhalten hat ...
Was sollte ich tun? Ist das mein Fehler? Ein phpmyadmin Fehler? Update warten? Ich gehe zurück zu PHP 7.1?
phpmyadmin
countable
Alebal
quelle
quelle
if ( count($articles)){..}
in CodeIgniter , sollten sie verwenden:if ( count((array)$articles)){..}
wie hierAntworten:
Bearbeiten Sie die Datei
/usr/share/phpmyadmin/libraries/sql.lib.php
mit diesem Befehl:In Zeile 613 wird die Zählfunktion immer als wahr ausgewertet, da danach keine schließende Klammer mehr vorhanden ist
$analyzed_sql_results['select_expr']
. Wenn Sie die folgenden Ersetzungen vornehmen, wird dies behoben. Anschließend müssen Sie die letzte schließende Klammer in Zeile 614 löschen, da es sich nun um eine zusätzliche Klammer handelt.Ersetzen:
Mit:
Starten Sie den Server-Apache neu:
quelle
Error in processing request Error code: 500 Error text: Internal Server Error
. Die Lösung von @Chandra Nakka hat mein Problem behoben.Einfachste Methode:
Führen Sie dies einfach unter der Befehlszeile im Terminal aus und kehren Sie zu PhpMyAdmin zurück. Jetzt funktioniert es gut :)
Manuelle Methode:
Öffnen Sie die Datei sql.lib.php
Suchen Sie nach
count($analyzed_sql_results['select_expr']
Code in der Datei. Sie können dies bei Zeile ~ 613 erhalten . Sie können diesen unten falschen Code sehenErsetzen Sie einfach den falschen Code durch den folgenden
Speichern Sie die Datei und kommen Sie zu PhpMyAdmin .
quelle
nano +613 filename
können, um direkt zur jeweiligen Zeile zu gelangen.Ich habe diesen PHP 7.2 count () - SYNTAX-Fehler in sql.lib.php gefunden
Das funktioniert perfekt in meiner Konfiguration:
Öffnen
/usr/share/phpmyadmin/libraries/sql.lib.php
Zeile ändern : Klammer vor == verschieben
im
quelle
server error
. Die Antwort von @ loquace sollte die sein, die akzeptiert werden soll.auf Debian getestet, sollte unter Ubuntu funktionieren:
1.) Laden Sie zuerst die neueste phpMyadmin-Datei herunter.
2.) Löschen Sie alle Sicherungsdateien im
/usr/share/phpmyadmin
Verzeichnis ( erstellen Sie eine Sicherungskopie) .3.)
/usr/share/phpmyadmin/
Dekomprimieren Sie alle Dateien des neuesten phpmyadmin in das Verzeichnis.4.) Datei
libraries/vendor_config.php
ändern und Zeile ändern:zu
und
zu
5.) Apache Server neu starten und fertig.
quelle
mkdir /usr/share/phpmyadmin/tmp; chgrp www-data tmp; chmod g+w tmp;
/usr/share/phpmyadmin
funktionieren. Musste die späteren Schritte nicht befolgen.Datei bearbeiten :
'/usr/share/phpmyadmin/libraries/sql.lib.php'
Ersetzen :
(count($analyzed_sql_results['select_expr'] == 1)
Mit :
(count($analyzed_sql_results['select_expr']) == 1
das hat bei mir funktioniert
quelle
quelle
Wenn jemand einen ähnlichen Fehler auf der DB-Exportseite hat (ich hatte dieses Problem in Ubuntu 18.04), ersetzen Sie Zeile 551 in der Datei
/usr/share/phpmyadmin/libraries/plugin_interface.lib.php
durch Codequelle
if ($options != null && count($options) > 0) {
durch:if ($options != null) {
dann können Sie exportierenphpmyadmin 4.7.4 soll "mehrere Kompatibilitätsprobleme mit PHP 7.2 behoben haben"
Möglicherweise haben Sie eine ältere Version von phpmyadmin.
https://www.phpmyadmin.net/news/2017/8/24/phpmyadmin-474-released/
quelle
Gehen Sie am Ubuntu-18.04 wie folgt vor:
Schritt 1) suchen
sql.lib.php
Es wird etwas zeigen wie:
Schritt 2) Öffnen Sie das Terminal (Alt t) und schreiben Sie:
Schritt 3)
sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
und Suche unten Funktion:Schritt 4) Ersetzen Sie die obige Funktion durch:
Schritt 4) Speichern und schließen Sie die Datei und den folgenden Befehl auf dem Terminal
Schritt 5)
sudo service mysql reload
Schritt 6)
sudo service apache2 reload
Es funktioniert für mich .. Viel Glück
|| (count($analyzed_sql_results['select_expr']) == 1
Wenn Sie immer noch mit demselben Problem konfrontiert sind, gehen Sie wie folgt vor.
durch folgenden Code ersetzen
Speichern Sie nun den Server und starten Sie ihn neu
quelle
Ich denke, die beste Option ist, Phpmyadmin auf eine Version zu aktualisieren, die dies bereits behoben hat.
Bis es als Deb veröffentlicht wird, können Sie es wie in @ crimson-501 Antwort tun, die ich unten kopieren werde:
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"
Lassen Sie mich die Argumente dieses Befehls erklären, definiert -P den Pfad und „die link.zip“ ist zur Zeit (7/17/18 ) die neueste Version von PMA. Diese Links finden Sie HIER .apt-get install unzip
) :unzip phpMyAdmin-4.9.4-english.zip
. Wir haben gerade PMA entpackt, jetzt werden wir es in sein endgültiges Zuhause bringen.cp
wir den Befehl (Kopieren), um unsere Dateien zu verschieben! Beachten Sie, dass wir das-r
Argument hinzufügen müssen, da dies ein Ordner ist.cp -r phpMyAdmin-4.9.4-english phpmyadmin
.rm -rf phpMyAdmin-4.9.4-english
.Weiter lesen!
Möglicherweise stellen Sie jetzt zwei Fehler fest, nachdem Sie sich bei PMA angemeldet haben.
Diese Probleme sind jedoch relativ einfach zu beheben. Für die erste Ausgabe müssen Sie nur den Editor Ihrer Wahl auswählen und bearbeiten,
/usr/share/phpmyadmin/config.inc.php
aber es gibt ein Problem, wir haben es entfernt! Das ist in Ordnung, alles was Sie tun müssen ist:cd /usr/share/phpmyadmin
&cp config.sample.inc.php config.inc.php
.nano config.inc.php
und kopieren Sie das dynamisch generierte Geheimnis am Ende dieser Seite: https://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator .Beispiel phpMyAdmin Blowfish Secret Variable Entry:
Speichern und schließen Sie nun die Datei.
mkdir tmp
&chown -R www-data:www-data /usr/share/phpmyadmin/tmp
. Mit dem letzten Befehl kann der Apache-Webserver das tmp-Verzeichnis besitzen und dessen Inhalt bearbeiten.quelle
Versuchen Sie, diese Funktion in der Datei /usr/share/phpmyadmin/libraries/sql.lib.php zu ersetzen
quelle
Ubuntu 18.04 LTS
Dies sind die Schritte, die für mich funktioniert haben. Vielen, vielen Dank an William Desportes für die Bereitstellung der automatischen Updates für ihre Ubuntu PPA.
Schritt 1 ( aus dem Beitrag von William Desportes )
$
sudo add-apt-repository ppa:phpmyadmin/ppa
Schritt 2
$
sudo apt-get --with-new-pkgs upgrade
Schritt 3
$
sudo service mysql restart
Wenn Sie Probleme beim Neustart von MySQL haben, können Sie auch mit der folgenden Sequenz
$
sudo service mysql stop;
$ neu starten
sudo service mysql start;
quelle
Ubuntu 18.10 (Dezember 2018)
Zeile 613, 614, 615, ersetzen durch:
quelle
Arbeite für mich .. Ubuntu 18.04
Suchen Sie nach
count($analyzed_sql_results['select_expr']
Code in der Datei. Sie können dies bei Zeile ~ 613 erhalten.Einfach durch Code ersetzen:
Speichern Sie die Datei und laden Sie PhpMyAdmin neu.
Erledigt!!!
quelle
|| (count($analyzed_sql_results['select_expr']) == 1
Für meine Version von phpmyadmin (4.6.6deb5) habe ich Zeile 613 gefunden und festgestellt, dass die count () - Klammern nicht richtig geschlossen wurden. Um dies vorübergehend bis zur nächsten Version zu beheben, ändern Sie einfach:
zu:
quelle
Dies wurde in späteren Versionen von PHPMyAdmin behoben. Die Ubuntu Software Repositories für Ubuntu 18.04.2 enthalten Version 4.6.6.5, während sie derzeit auf 4.9.0.1 sind. Das Aktualisieren Ihrer PHPMyAdmin-Installation behebt dieses Problem, kann sich jedoch als riskanter erweisen, als nur diese eine Codezeile zu bearbeiten. So habe ich es auf meinem Ubuntu-Server gemacht. Die Schritte sind für alle Betriebssysteme im Wesentlichen gleich (mit einem anderen Pfad).
Stellen Sie sicher, dass es funktioniert. Wenn dies nicht der Fall ist, haben Sie ein Backup. Stellen Sie es also wieder her und bearbeiten Sie die fehlerhafte Zeile manuell. Nach meiner persönlichen Erfahrung stellte ich danach fest, dass Version 4.6.6.5 nicht nur mit Fehlern behaftet war, sondern im Vergleich zur neuen Version 4.9.0.1 auch unglaublich langsam. Die Geschwindigkeitssteigerung war pure Magie für etwas, von dem ich dachte, dass es von "WordPress" -Qualität ist.
quelle
Funktioniert mit UBUNTU 16.04.3 Einfach öffnen
usr / share / library / sql.lib.php
ändern
|| (count($analyzed_sql_results['select_expr'] == 1)
Zu
|| ((count($analyzed_sql_results['select_expr']) == 1)
quelle
Upgrade auf phpMyAdmin 4.8.3. Dies löst die PHP 7.2-Kompatibilitätsprobleme
quelle
|| ((count($analyzed_sql_results['select_expr']) == 1
Dies habe ich in Zeile 614 geändert und phpmyadmin funktioniert ohne Fehler. Benötigen Sie eine
(
vor dem Zählen und eine)
vor dem Zählen==
. Das ist es.quelle
Datei '/usr/share/phpmyadmin/libraries/sql.lib.php' bearbeiten Ersetzen: (Backup erstellen)
Mit:
quelle
Hallo die folgenden lösen mein gleiches Problem absolut (Import / Export und so weiter):
Behebung des Fehlers Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04
also ... unter ubuntu 18.04, mysql, php7.2: terminal:
Suchen Sie die folgende Zeile (Strg + F):
es war für mich in Zeile 551
und ändern Sie für Folgendes:
Strg + s zum Speichern der Änderungen
und im Terminal: Strg + C für die Rückmeldung ...
und:
sudo systemctl restart apache2
"Ich denke in der neuen PHP-Version. Es kann nicht count () oder sizeof () mit un Array-Typ verwenden. Parameter auf Array erzwingen ist eine einfache Möglichkeit, diesen Fehler zu beheben, ..."
Vielen Dank für den ursprünglichen Autor für die Problemlösung! Ich versuche es zu teilen!
quelle
Öffnen Sie die
/usr/share/phpmyadmin/sql.lib.php
Datei mit erhöhten Berechtigungen und bearbeiten Sie Folgendes in der FunktionPMA_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] == '*'))
Starten Sie Ihren Apache-Server neu :
sudo service apache2 restart
.Getestet unter Linux Mint 19.1 basierend auf Ubuntu 18.04, mit PhpMyAdmin 4.6.6 und PHP 7.2.
quelle
Ich habe alle oben genannten Lösungen ausprobiert, aber bei mir nicht funktioniert.
Versuche dies:-
Installieren Sie die erforderliche Version von PHP (in meinem Fall 7.0) und geben Sie dann im Terminal ein
Die Ausgabe wird wie folgt aussehen: -
Dann können Sie zu jeder Version von PHP wechseln, indem Sie einfach die Auswahlnummer eingeben (in meinem Fall 1).
Hoffe das kann anderen helfen - :)
quelle
Ich hatte dieses Problem bei der Verwendung von Windows und die obigen Antworten lösten es für mich. Als ich jedoch zu Linux (Ubuntu 18.04 LTS) wechselte, hatte ich das gleiche Problem und konnte nicht herausfinden, wie ich es lösen konnte, weil ich die Datei nicht sah '/usr/share/phpmyadmin/libraries/sql.lib.php'.
Diese Datei sql.lib.php befand sich nicht im Freigabeordner oder im Ordner phpmyadmin / library meines Verzeichnisses / opt / lampp, da ich xampp auf meinem Ubuntu verwendet habe. Basierend auf dem Update für das xampp-Setup (da ich ab sofort die neueste Installation verwendet habe).
Die Antwort ist noch zu ersetzen:
(count($analyzed_sql_results['select_expr'] == 1)
Mit:
(count($analyzed_sql_results['select_expr']) == 1
Die zu suchende Datei befindet
Sql.php
sich jedoch in/opt/lampp/phpmyadmin/libraries/classes/Sql.php
Zukünftige Updates oder wenn Sie sie immer noch nicht finden: Verwenden Sie diese Option
grep -r 'count($analyzed_sql_results' /opt/lampp/phpmyadmin
, um nach passenden Dokumenten in Ihrem Verzeichnis zu suchen und diese entsprechend zu bearbeitenquelle
Funktion ersetzen:
quelle
Datei bearbeiten
/usr/share/phpmyadmin/libraries/sql.lib.php
Bei Ihrem Fehler wird ein Fehler angezeigt
Gehen Sie zu dieser Zeile und entfernen Sie den Funktionsaufruf.
Für mich geht das.
quelle
Ich sehe, dass Sie alle unsere Dateien bearbeiten oder aktualisieren
Für diejenigen, die automatische Updates wünschen, können Sie unser Ubuntu PPA verwenden
sudo add-apt-repository ppa: phpmyadmin / ppa
Und für Debian-Benutzer müssen Sie auf die nächste Version von Debian warten oder PPA verwenden
Ubuntu 20 hat phpMyAdmin 4.9 oder eine neuere Version
Debian-Problem auf unserem Tracker
Zählbare Probleme auf unserem Tracker
TLDR-Update auf die neueste Version 4.9 oder 5.0, um dieses Problem zu beheben.
quelle
Unter Ubuntu 18.04 mit MariaDb und Nginx habe ich das Problem gelöst, indem ich die Datei /usr/share/phpmyadmin/libraries/sql.lib.php wie folgt aktualisiert habe:
Die von @Nguyen erwähnte Antwort gibt einen Fehler von 500 aus und sagt:
quelle
Da der Fehler im Code in der conf-Datei variieren kann (@Jacky Nguyen vs @ ĦΔŇĐŘΔ ŇΔҜҜΔ-Antworten), wäre
die allgemeine Antwort der Lösung ,
a) die Bedingungslogik in der conf-Datei zu
korrigieren , um Sinn zu machen (x) oder b) korrigiert / aktuell zu installieren phpmyadmin
Wie für a)
Öffnen Sie die Datei mit dem Fehlercode.
Für die Terminal-Leute:
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Für die normalen Leute:
sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
Finden Sie die Bedingung - im Grunde suchen
$analyzed_sql_results['select_expr']
Jetzt sollte die Logik darin bestehen, zu überprüfen, ob dieses Unterarray leer ist oder ob es nur 1 Element mit einem Wert hat. "
*
also im grunde der block
zwischen
&& $analyzed_sql_results['select_from']
und
&& count($analyzed_sql_results['select_tables']) == 1
sollte ungefähr so aussehen
Dies ist ein gutes Beispiel dafür, warum Sie Ihren Code einrücken und verschönern sollten. Wenn er korrekt eingerückt wäre, würde dies meiner Meinung nach niemals passieren oder zumindest leichter zu finden sein.
quelle