phpmyadmin - count (): Parametre Sayılabilen bir dizi veya nesne olmalıdır


470

Yedeklemeyi bir tabloya yükledim, tabloyu açarak şunu görüyorum:

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 içinde ...

PHP 7.2, sunucu dün yüklü olan Ubuntu 16.04.

Ben bazı kodlarında bu hata olduğunu gördüm, ama ben phpMyAdmin onu alan kimse bulamadık için arıyorsunuz ...

Ne yapmalıyım? Bu benim hatam mı? Bir phpmyadmin hatası mı? güncelleme bekle? PHP 7.1'e geri dönüyor muyum?


9
Olarak sorunuyla karşı karşıya olanlar: if ( count($articles)){..}in CodeIgniter , onlar kullanmalıdır: if ( count((array)$articles)){..}olarak burada
fWd82

2
phpmyadmin v4.6 bu sorunu vardı ben 4.8 için güncellendi kayboldu. , Görünüşe göre ben mariadb 10.3 phpmyadmin 4.6 ile bu konuda yoktu gibi mariadb 10.3 ile ilgili bir şey var
user889030

Benim durumumda phpMyAdmin 4.7.1 iken php 7.3 yüklediğimde sorun oluştu, php 7.0'a geri döndüm ve iyi çalışıyor ya da php 7.3 ile uyumlu phpMyAdmin'in sürümünü yüklemelisiniz
22'de vinsa

Yanıtlar:


878

/usr/share/phpmyadmin/libraries/sql.lib.phpBu komutu kullanarak dosyayı düzenleyin :

sudo nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php

613 satırında sayma işlevi her zaman true olarak değerlendirilir, çünkü sonradan kapanış parantezi yoktur $analyzed_sql_results['select_expr']. Aşağıdaki değişikliklerin yapılması bunu çözer, o zaman şimdi ekstra bir parantez olduğu için 614 satırındaki son kapanış parantezini silmeniz gerekir.

Değiştir:

((empty($analyzed_sql_results['select_expr']))
    || (count($analyzed_sql_results['select_expr'] == 1)
        && ($analyzed_sql_results['select_expr'][0] == '*')))

İle:

((empty($analyzed_sql_results['select_expr']))
    || (count($analyzed_sql_results['select_expr']) == 1)
        && ($analyzed_sql_results['select_expr'][0] == '*'))

Sunucu önbelleğini yeniden başlatın:

sudo service apache2 restart

95
Inanılmaz. Ubuntu 18.04 üzerinde çalışır apt kullanarak phpmyadmin yüklü.
PNDA

7
Tabloları
seçebildim


30
DB dışa aktarımında benzer bir sorunla karşılaşırsanız /usr/share/phpmyadmin/libraries/plugin_interface.lib.php, 551 satırını if ($ options! = Null && count ($ options)> 0) {ila _if ($ options! = null && count ((dizi) $ options)> 0) { @alperian ve diğerleri için ilginç olabilir
Bernd Schuhmacher

5
Bu benim için işe yaramadı. Anladım Error in processing request Error code: 500 Error text: Internal Server Error. @Chandra Nakka'nın çözümü sorunumu düzeltti.
Jee

474

En Kolay Yöntem:

Terminalde aşağıdaki komut satırını çalıştırın ve PhpMyAdmin'e geri dönün. Şimdi iyi çalışıyor :)

sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" /usr/share/phpmyadmin/libraries/sql.lib.php

Manuel Yöntem:

Sql.lib.php dosyasını açın

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

count($analyzed_sql_results['select_expr']Dosyadaki kodu bulun . Bunu ~ 613 satırından alabilirsiniz . Bunu yanlış kodun altında görebilirsiniz

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

Bu yanlış kodu aşağıdaki kodla değiştirin

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

Dosyayı kaydedin ve PhpMyAdmin'e gelin .

Şimdi iyi çalışıyor :)


39
Ubuntu'da 18.04 Ağustos'ta çalışıyor :)
Luiz Gonçalves

4
Ubuntu 16.04
SP Singh'de

2
Çekicilik gibi çalışır
Rameez Rami

2
Ubuntu 19.04 üzerinde çalışır. Teşekkürler
murume

4
Nano'nun düzgün küçük bir numarası, nano +613 filenamesizi doğrudan belirli bir satıra götürmek için yazabilmenizdir.
SteffenNielsen

102

Bu PHP 7.2 sayısı () - sql.lib.php SYNTAX hatası buldum

Mükemmel benim yapılandırma üzerinde çalışır:

Debian 9, 
PHP 7.2.3-1+0~20180306120016.19+stretch~1.gbp81bf3b (cli) (built: Mar  6 2018 12:00:19) ( NTS )

Açık /usr/share/phpmyadmin/libraries/sql.lib.php

Satırı değiştir : Parantezleri == öncesine taşı

|| ( (sayı ($ analyzed_sql_results ['select_expr'] ) == 1) && ($ analyzed_sql_results ['select_expr'] [0] == '*')))

içinde

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

Aşağıdaki satırda, sondaki kapanış parantezlerinden birini de kaldırmanız gerekecektir.
18'de

Teşekkürler. Apt yüklenebilir paketi ile böyle bir hata nasıl çıktı? Sadece biraz saçma.
Josh Morel

1
@ flolopes Hayır, doğru değil. Bu kapanış parantezini ÇIKARMAMALISINIZ. Yolunu test ettim ve buna neden oldu server error. @ loquace'in cevabı kabul edilecek cevap olmalıdır.
Uzun

Bizim için hecelediğiniz ve gerektiğinde kalın yazı tipi kullandığınız için teşekkür ederiz. Ne 1. ne de 2. cevap benim için yeterince açıktı çünkü ne yaptıklarını söylemediler. Nano'da düzenleme, gedit veya başka bir şeyle aynı değildir.
logicbloke

70

Debian üzerinde test edilmiş, Ubuntu üzerinde çalışmalıdır:

1.) Önce en son phpMyadmin dosyasını indirin.

2.) /usr/share/phpmyadminDizindeki tüm önceki sürüm dosyalarını silin (yedekleyin) .

3.) Sıkıştır /usr/share/phpmyadmin/ En son phpmyadmin'in tüm dosyalarının dizinini açın.

4.) Dosyayı libraries/vendor_config.phpdeğiştirin ve satırı değiştirin:

define('CONFIG_DIR', '');

için

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

ve

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

için

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

5.) apache sunucusunu yeniden başlatın ve bitti.


3
Ubuntu üzerinde çalışıyor 16.04
pjehan

7
Ubuntu 18.04 üzerinde çalışıyor
Simon Epskamp

5
Ubuntu 18.04, phpMyAdmin 4.8.0.1mkdir /usr/share/phpmyadmin/tmp; chgrp www-data tmp; chmod g+w tmp;
Gerekti

Ubuntu 16.04 /usr/share/phpmyadminişe yaradı. Sonraki adımları izlemenize gerek yoktu.
tushar.dahiwale

@billynoah Burada yeni kurulum ile aynı. Tmp dizinini oluşturdum, 777'ye ayarladım, Apache'yi yeniden başlattım, phpMyAdmin oturumunu kapattım ve hatalar gitti.
JScarry

38

Dosyayı düzenle :'/usr/share/phpmyadmin/libraries/sql.lib.php'

Değiştir :(count($analyzed_sql_results['select_expr'] == 1)

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

bu benim için çalıştı


Onun benim için çalıştı u dahili 500 hata düzeltilmiş durumda çözüldü, ancak eski hata sorunu "phpmyadmin - count (): Parametre bir dizi veya Sayılabilir uygulayan bir nesne olmalıdır" çözülmedi.
shashik493

bu benim için işe yarıyor gibi görünüyor ama kimse bunun neden olduğunu biliyor mu? Benim phpmyadmin gayet iyi çalışıyordu ve sonra bugün giriş aniden ve bu sorun var gibi görünüyordu? Ubuntu 18.04.2 LTS
wheelsmanx

UBuntu 18.04, kanat Nginx, php 7.2 üzerinde çalışır
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

Bu benim için 18.04'te çalıştı, teşekkürler! Sunucuyu yeniden başlatmaya bile gerek yok - PHP 'canlı' olarak yorumlanır.
Jelle Veraa

@JelleVeraa, Sen özel vaka hehehe;)
kaleem

32

Birisi DB dışa aktarma sayfasında benzer bir hata varsa (Ubuntu 18.04'te bu sorunu yaşadım), dosyadaki 551 satırını /usr/share/phpmyadmin/libraries/plugin_interface.lib.phpkodla değiştirin

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

Bu da bana yardımcı oldu, ama hem cevabı hem de bunu yapmak zorunda kaldım. Ubuntu 18.04
Karuhanga

2
Bu hata mesajlarından kurtulmak için çalıştı, ama sonra if deyimi hep birlikte önler ve benim veritabanı ihracat (bir veritabanı tamamlandıktan sonra sayfayı yeniledikten sonra altta gösterilen hataların bir grup ile) bir şey almıyorum düşünüyorum küçük bir dosya kaplamasıyla dışa aktar)
Warren Wang

Öp, öp, seni seviyorum.
Noah Krasser

1
Debian 9'da 551 satırını değiştirin: if ($options != null && count($options) > 0) {ile: if ($options != null) {dışa aktarabilirsiniz
BitDEVil2K16

Bu 18.04 üzerinde çalışan tek kişi
TeT Psy


24

Ubuntu-18.04'te şu adımları izleyin:

Aşama 1) bulunsql.lib.php

Şöyle bir şey gösterecektir:

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

Adım 2) Terminali (Alt t) açın ve şunu yazın:

sudo /usr/sbin/pma-configure

Adım 3)sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php ve aşağıdaki işlevi arayın:

 

    işlevi 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']
            && ((boş ($ analyzed_sql_results ['select_expr'])))
                || (sayı ($ analyzed_sql_results ['select_expr'] == 1)
                    && ($ analyzed_sql_results ['select_expr'] [0] == '*')))
            && sayısı ($ analyzed_sql_results ['select_tables']) == 1;
     }

Adım 4) Yukarıdaki işlevi aşağıdaki ile değiştirin:

     işlevi 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']
            && ((boş ($ analyzed_sql_results ['select_expr'])))
                || (sayı ($ analyzed_sql_results ['select_expr']) == 1)
                    && ($ analyzed_sql_results ['select_expr'] [0] == '*'))
            && sayısı ($ analyzed_sql_results ['select_tables']) == 1;
     }

Adım 4) Terminalde dosyayı ve altındaki komutu kaydedin ve kapatın

sudo /usr/sbin/pma-secure

Adım 5) sudo service mysql reload

Adım 6) sudo service apache2 reload

Benim için çalışıyor .. Goodluck


MySQL ve apache yeniden yüklemesi gerekli değildir.
Tacsiazuma

Dosya değişikliklerinden sonra bu mesajı aldım: "- root @ Lalla: ~ # / usr / sbin / pma-secure - phpMyAdmin kurulumunun güvenliğini sağlama ... - Kurulum betiği yapılandırma yazamayacak. - root @ Lalla: ~ # "
cl-r

22

bu dosyayı aç: '/usr/share/phpmyadmin/libraries/sql.lib.php'

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

aramak için ctrl + w tuşlarına basın (sayı ($ analyzed_sql_results ['select_expr'] == 1)

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

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

Sunucuyu yeniden başlatın

 sudo service apache2 restart

dahası, hala aynı sorunla karşı karşıyaysanız o zaman aşağıdakileri yapın.

bu dosyayı aç /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

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

Bul: if ($ options! = Null && count ($ options)> 0) {

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

aşağıdaki kodla değiştir

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

şimdi sunucuyu kaydet ve yeniden başlat

sudo /etc/init.d/apache2 restart

Basitçe bir parantez eklediniz. Ama teşekkürler. Hattın sonunda fazladan ayracı
çıkardım

Mac bilgisayarımda yüklü xampp var, / usr / share / phpmyadmin klasörünü bulamadım ve bu nedenle '/usr/share/phpmyadmin/libraries/sql.lib.php' bu dozaj benim için var, bu konuda yardımcı olabilir misiniz?
Saurabh Verma

18

En iyi seçenek Phpmyadmin bu zaten düzeltilmiş bir sürüme güncellemek olduğunu düşünüyorum.

Bir deb olarak yayınlanana kadar, aşağıda kopyalayacağım @ crimson-501 yanıtında olduğu gibi yapabilirsiniz:

  • İlk adım resmi Ubuntu repo PMA (phpMyAdmin) yüklemektir: apt-get install phpmyadmin.
  • Daha sonra, usr / share dizine cd: cd /usr/share.
  • Üçüncüsü, phpmyadmin dizini kaldırın: rm -rf phpmyadmin.
  • Şimdi sistemimiz (eğer wget gerek olmadığı Not: üzerine son PMA sürümünü indirmek gerekir apt-get install wget): wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-english.zip" Beni bu komutu argümanları açıklayalım, -P yolunu tanımlar ve "link.zip" şu anda (7/17/18 olduğunu ) PMA'nın en son sürümü. Bu bağlantıları BURADA bulabilirsiniz .
  • Bu sonraki adım için unzip ( apt-get install unzip): öğesine ihtiyacınız var unzip phpMyAdmin-4.9.4-english.zip. Sadece PMA'yı açtık, şimdi onu son evine taşıyacağız.
  • cpDosyalarımızı taşımak için (copy) komutunu kullanalım ! -rBu bir klasör olduğu için argümanı eklememiz gerektiğini unutmayın . cp -r phpMyAdmin-4.9.4-english phpmyadmin.
  • Şimdi temizlemek zamanı: rm -rf phpMyAdmin-4.9.4-english.

Okumaya devam et!

Artık PMA'da oturum açtıktan sonra iki hata görebilirsiniz.

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.

Ancak, bu sorunların çözülmesi nispeten kolaydır. İlk sayı için yapmanız gereken tek şey editörünüzü almak ve düzenlemek /usr/share/phpmyadmin/config.inc.phpama bir sorun var, biz kaldırdık! Sorun değil, tek yapmanız gereken: cd /usr/share/phpmyadmin& cp config.sample.inc.php config.inc.php.

Örnek phpMyAdmin Blowfish Gizli Değişken Girişi:

/*
 * 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! */

Şimdi dosyayı kaydedin ve kapatın.

  • Şimdi PMA için bir tmp dizini oluşturacağız: mkdir tmp& chown -R www-data:www-data /usr/share/phpmyadmin/tmp. Son komut, Apache web sunucusunun tmp dizinine sahip olmasına ve içeriğini düzenlemesine izin verir.

Bu cevap inanılmaz derecede faydalı oldu! Sorunu benim için çözdü! Teşekkürler! Not: Balon balığı jeneratörlerini çevrimiçi bulabilirsiniz.
lucbas

Ve bu bağlantıdaki çözüm: devanswers.co/manually-upgrade-phpmyadmin benzer bir planı takip eder, ancak blowfish adımlarını daha kolay olanlarla değiştirir ..
gwideman

Bu, eski sürümlerin yapılandırma dosyalarını düzenlemeye kıyasla çok daha iyi bir çözümdür.
andromeda

18

Ubuntu 18.04 LTS

Bunlar benim için işe yarayan adımlar. William Desportes'a Ubuntu PPA'larında otomatik güncellemeler sağladıkları için çok, çok teşekkürler.

Adım 1 ( William Desportes gönderisinden )
$sudo add-apt-repository ppa:phpmyadmin/ppa

Adım 2
$sudo apt-get --with-new-pkgs upgrade

Adım 3
$sudo service mysql restart

Mysql'yi yeniden başlatırken sorun yaşıyorsanız, aşağıdaki
$ sudo service mysql stop;
$ ile de yeniden başlatabilirsinizsudo service mysql start;


2
Ubuntu 18.04 LTS'de sorunu çözer. Kabul edilen cevap olmalı.
bgaze

17

Bu işlevi dosyada değiştirmeyi deneyin: /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;
}

Teşekkürler! Bu satır sonunda ben 3 kapanış braketi insted vardı nerede yanlış olduğunu ben sadece 2 kapanış braketleri gerekli & & ($ analyzed_sql_results ['select_expr'] [0] == '*')). Phpmyadmin 4.6, php 7.2.10, Ubuntu 18.4.1 üzerinde çalıştı
Wang'l Pakhrin

15

Ubuntu 18.10 (Aralık 2018)

Satır 613, 614, 615, aşağıdakilerle değiştirin:

        || count($analyzed_sql_results['select_expr']) == 1
            && ($analyzed_sql_results['select_expr'][0] == '*'))
    && count($analyzed_sql_results['select_tables']) == 1;

Benim için çalıştı .. MySQL veya başka bir şey yükseltmeye gerek yok ... Teşekkürler @ole
Nitin Vaghani

15

Benim için çalış .. Ubuntu 18.04

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

count($analyzed_sql_results['select_expr']Dosyadaki kodu bulun . Bunu ~ 613 satırından alabilirsiniz.

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

Sadece kodla değiştirin:

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

Dosyayı kaydedin ve PhpMyAdmin'i yeniden yükleyin.

Bitti !!!


1
613 satırında|| (count($analyzed_sql_results['select_expr']) == 1
tnductam

11

Phpmyadmin (4.6.6deb5) sürümüm için 613 satırını buldum ve count () parantezlerinin düzgün kapatılmadığını fark ettim. Bunu bir sonraki sürüme kadar geçici olarak düzeltmek için şunları değiştirmeniz yeterlidir:

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

için:

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

İşlev çağrısını kapatmak için eksik parantez var || (count ($ analyzed_sql_results ['select_expr']) == 1 doğru ifadedir
Ruberandinda Patience

nerede bulacağını bilmeyenler için dosya yolu "/usr/share/phpmyadmin/libraries/sql.lib.php" dir.
Ali Imran

9

Bu PHPMyAdmin'in sonraki sürümlerinde düzeltildi. Ubuntu 18.04.2 için Ubuntu Yazılım Depoları, 4.6.6.5 sürümüne sahipken, şu anda 4.9.0.1 sürümündedir. PHPMyAdmin kurulumunuzu güncellemek bu sorunu çözecektir, ancak yalnızca bir kod satırını düzenlemekten daha riskli olabilir. İşte bunu Ubuntu Sunucumda yaptım. Adımlar esasen tüm işletim sistemleri için aynıdır (farklı bir yolla).

  1. PHPMyAdmin'i indirin .
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. Eski PHPMyAdmin kurulumunuzu yedekleyin.
cp -r /usr/share/phpmyadmin ~/phpmyadmin-backup
  1. Yeni PHPMyAdmin'inizi eski PHPMyAdmin'inize bırakın
cd phpMyAdmin-4.9.0.1-all-languages
rm -r /usr/share/phpmyadmin/doc/html
cp -R * /usr/share/phpmyadmin/

Çalıştığını doğrulayın. Değilse, welll ... Bir yedeğiniz var, bu yüzden geri yükleyin ve hatalı satırı manuel olarak düzenleyin. Kendi kişisel deneyimime göre, bunu yaptıktan sonra 4.6.6.5 sürümünün sadece hatalarla değil, aynı zamanda yeni 4.9.0.1'e kıyasla inanılmaz derecede yavaş olduğunu keşfettim. Hız artışı, "WordPress" kalitesinde olduğum bir şey için saf bir sihirdi.


Ben 1 ve 2 sırasını değiştirmek ve wget önce cd / tmp ama bunun dışında mükemmel, teşekkür ederim.
Chris

Bu benim için çalışıyor, basit çözüm için teşekkürler!
uestcfei

8

UBUNTU 16.04.3 üzerinde çalışıyor Sadece aç

usr / share / libraries / sql.lib.php

Değiştirme

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

için

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


5

PhpMyAdmin 4.8.3 sürümüne geçin. bu PHP 7.2 uyumluluk sorunlarını çözer


5

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

Bu 614 satırında değiştirdiğim ve phpmyadmin herhangi bir hata olmadan çalışır. Saymadan (önce ve )önce bir tane gerekir ==. Bu kadar.


4

'/Usr/share/phpmyadmin/libraries/sql.lib.php' dosyasını düzenle Değiştir: (yedek yap)

"|| (count($analyzed_sql_results['select_expr'] == 1) 
&&($analyzed_sql_results['select_expr'][0] == '*'))) 
&& count($analyzed_sql_results['select_tables']) == 1;"

İle:

"|| (count($analyzed_sql_results['select_expr']) == 1) 
&& ($analyzed_sql_results['select_expr'][0] == '*') 
&& (count($analyzed_sql_results['select_tables']) == 1));"

3

Merhaba aşağıdaki benim aynı sorunu kesinlikle çözmek (ithalat / ihracat ve benzeri):

Hata Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04

yani ... Ubuntu 18.04, MySQL, PHP7.2 altında: Terminal:

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

Aşağıdaki satırı bulun (ctrl + f):

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

benim için 551. satırdaydı

ve aşağıdakiler için değiştirin:

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

değişiklikleri kaydetmek için ctrl + s

ve terminalde: geri almak için ctrl + c ...

ve: sudo systemctl restart apache2

"Ben yeni php sürümünde düşünüyorum. Un dizi türü ile count () veya sizeof () kullanamazsınız. Dizi zorla parametre bu hatayı çözmek için kolay bir yoldur ...

Problem çözme konusunda orijinal yazar için teşekkürler! Paylaşmaya çalışıyorum!


3

/usr/share/phpmyadmin/sql.lib.phpYükseltilmiş ayrıcalıklara sahip dosyayı açın ve işlevde aşağıdakileri düzenleyin PMA_isRememberSortingOrder():

  1. ~ ilk hatayı düzeltmek için satır 613:
    • değiştirmek || count($analyzed_sql_results['select_expr'] == 1)
    • İle || (count($analyzed_sql_results['select_expr']) == 1)
  2. ~ satır 614 muhtemelen takip edecek 500 hatasını düzeltmek için:
    • değiştirmek && ($analyzed_sql_results['select_expr'][0] == '*')))
    • İle && ($analyzed_sql_results['select_expr'][0] == '*'))

Apache sunucunuzu yeniden başlatın: sudo service apache2 restart .

PhpMyAdmin 4.6.6 ve PHP 7.2 ile Ubuntu 18.04 tabanlı Linux Mint 19.1 üzerinde test edilmiştir.


3

Yukarıdaki tüm çözümü denedim ama benim için çalışmadı.

Bunu dene:-

Gerekli PHP sürümünü (benim durumumda 7.0) yükleyin ve sonra terminalde yazın

sudo update-alternatives --config php

Çıktı şu şekilde olacaktır: -

resim açıklamasını buraya girin

Daha sonra sadece seçim numarasını girerek PHP'nin herhangi bir sürümüne geçebilirsiniz (benim durumumda 1).

Bu diğer yardımcı olabilir umuyoruz - :)


2

Ben pencereleri kullanırken bu sorunu vardı ve yukarıdaki yanıtları benim için çözdü, ancak linux (ubuntu 18.04 LTS) geçti zaman ben aynı sorunu vardı ve nasıl çözülemedi çünkü dosyayı görmedim çünkü '/usr/share/phpmyadmin/libraries/sql.lib.php'.

Bu sql.lib.php dosyası, ubuntu'mda xampp kullandığım için / opt / lampp dizinimin paylaşım klasöründe veya phpmyadmin / libraries klasöründe değildi. Xampp'de yapılan güncellemeye dayanarak (şu andan beri en son yüklemeyi kullandım) kurulum.

Cevap hala yerini alacak: (count($analyzed_sql_results['select_expr'] == 1)

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

Ancak dosya olduğu için bakmak Sql.phpbulundu/opt/lampp/phpmyadmin/libraries/classes/Sql.php

Gelecekteki güncellemeler veya hala bulamıyorsanız: grep -r 'count($analyzed_sql_results' /opt/lampp/phpmyadmindizininizde eşleşen belgeleri aramak ve buna göre düzenlemek için kullanın


2

Değiştir Fonksiyonu:

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

Dosya düzenle /usr/share/phpmyadmin/libraries/sql.lib.php

Hatanızda bir hata görün

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

bu satıra gidin ve işlev çağrısını kaldırın.

Benim için çalışıyor.


2

Hepinizin dosyalarımızdan düzenleme veya güncelleme yaptığınızı görüyorum

Otomatik güncelleme isteyenler için Ubuntu PPA'mızı kullanabilirsiniz

sudo add-apt-repository ppa: phpmyadmin / ppa

Debian kullanıcıları için Debian'ın bir sonraki sürümünü beklemeniz veya PPA kullanmanız gerekecek

Ubuntu 20, phpMyAdmin 4.9 veya sonraki bir sürümüne sahip

Takipçimizde Debian sorunu

İzleyicimizdeki sayılabilir konular

TLDR Güncelleme Bu sorunu çözmek için en son 4.9 veya 5.0 sürümüne güncelleyin.


2

Bu Ubuntu 18.04'te benim için iyi çalıştı .

Sql.lib.php dosyasını açın

nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php

Bu yanlış kodu değiştirin:

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

Bununla birlikte:

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

Dosya 'yı kaydet.

Sunucunuzu aşağıdakilerle yeniden başlatın:

sudo service apache2 restart

Ve PhpMyAdmin'i yenileyin


1

Ubuntu 18.04'te MariaDb ve Nginx ile /usr/share/phpmyadmin/libraries/sql.lib.php dosyasını aşağıdaki gibi güncelleyerek çözdüm:

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

@Nguyen tarafından belirtilen cevap 500 hata veriyor:

FastCGI sent in stderr: "PHP message: PHP Parse error:  syntax error, unexpected ')', expecting ';' in /usr/share/phpmyadmin/libraries/sql.lib.php on line 614"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.