phpmyadmin - count (): पैरामीटर एक सरणी या एक ऑब्जेक्ट होना चाहिए जो कि गणनीय को लागू करता है


466

मैंने एक टेबल पर बैकअप अपलोड किया है, जिस तालिका को मैं देख रहा हूं उसे खोल रहा हूं:

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 त्रुटि? अद्यतन की प्रतीक्षा करें? मैं पीएचपी 7.1 पर वापस जाता हूं?


9
जो के रूप में समस्या का सामना कर रहे उन: if ( count($articles)){..}में CodeIgniter , वे का उपयोग करना चाहिए: if ( count((array)$articles)){..}के रूप में यहाँ
fWd82

2
मैं phpmyadmin v4.6 पर इस मुद्दे था मैं 4.8 के लिए अद्यतन यह गायब हो गया। , ऐसा लगता है कि यह कुछ 10 mariadb के साथ क्या करना है जैसा कि मैंने उस मुद्दे पर mariadb 10.1 नहीं था phpmyadmin 4.6 के साथ
user889030

मेरे मामले में समस्या तब आई जब मैंने php 7.3 स्थापित किया था, जबकि मेरा phpMyAdmin 4.7.1 था, मैंने वापस php 7.0 पर स्विच किया और यह ठीक काम करता है या आप phpMyAdmin के संस्करण को php 7.3 के साथ संगत स्थापित करते हैं
vinsa

जवाबों:


872

/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

95
अविश्वसनीय। Apt का उपयोग कर स्थापित किए गए phpmyadmin के साथ Ubuntu 18.04 पर काम करता है।
PNDA

7
में काम किया है कि मैं तालिकाओं का चयन कर सकता हूं, लेकिन जब मैंने Db
Alperian

6
बग की सूचना दी गई है: Bugs.launchpad.net/ubuntu/+source/phpmyadmin/+bug/1767361
हर्बर्ट

30
यदि आपको DB निर्यात में एक समान समस्या आती है, तो आपको /usr/share/phpmyadmin/lbooks/plugin_interface.lib.php, पंक्ति 551 यदि ($ विकल्प! = Null && count ($ विकल्प)> 0) {से लेकर _if तक संपादित करने की आवश्यकता है! ($ विकल्प! = null && count ((array) $ विकल्प)> 0) { @alperian और अन्य के लिए दिलचस्प हो सकता है
Bernd Schuhmacher

5
यह मेरे लिए काम नहीं किया। मुझे मिल गया Error in processing request Error code: 500 Error text: Internal Server Error। @ चंद्र नक्का के समाधान ने मेरी समस्या को ठीक कर दिया।
जी

471

सबसे आसान तरीका:

इसे टर्मिनल में कमांड लाइन के नीचे चलाएं और 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 पर आएं ।

अब यह ठीक काम करता है :)


39
उबुन्टु 18.04 में अगस्त 2018 को काम करता है :)
लुइज़ गोनक्लेव्स

4
मेरे लिए Ubuntu 16.04 पर काम नहीं किया
SP सिंह

2
आकर्षण जैसा काम करता है
रमीज रामी

2
उबंटू 19.04 पर काम करता है। धन्यवाद
murume

4
नैनो के लिए एक साफ छोटी चाल है, कि nano +613 filenameआप सीधे विशिष्ट लाइन पर ले जाने के लिए टाइप कर सकते हैं ।
स्टेफनीनेलसन

102

मुझे यह PHP 7.2 गणना () - sql.lib.php में SYNTAX त्रुटि मिली

यह पूरी तरह से मेरे विन्यास पर काम करता है:

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

परिवर्तन लाइन : == से पहले कोष्ठक ले जाएँ

|| ( (गिनती ($ 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
@ फालोअप नहीं, यह सही नहीं है। आप उस समापन परिकल्पना को दूर नहीं कर सकते। मैंने आपके तरीके का परीक्षण किया है और इसका कारण है server error। @ लोक्वेस का उत्तर स्वीकार किया जाना चाहिए।
लंबे समय से

यह हमारे लिए वर्तनी और बोल्ड फ़ॉन्ट का उपयोग करने के लिए धन्यवाद जहाँ इसकी आवश्यकता है। न तो 1 और न ही 2 उत्तर मेरे लिए पर्याप्त स्पष्ट थे क्योंकि उन्होंने यह नहीं कहा कि वे क्या कर रहे थे। नैनो पर संपादन gedit या जो भी हो के समान नहीं है।
लॉजिकब्लोक

71

डेबियन पर परीक्षण किया, उबंटू पर काम करना चाहिए:

1.) सबसे पहले नवीनतम phpMyadmin फ़ाइल डाउनलोड करें।

2.) /usr/share/phpmyadminनिर्देशिका में स्थित सभी पिछले संस्करण फ़ाइल को हटाएं (एक बैकअप बनाएं) ।

3.) /usr/share/phpmyadmin/नवीनतम phpmyadmin की सभी फ़ाइलों को निर्देशिका करने के लिए Uncompress ।

4.) फ़ाइल libraries/vendor_config.phpको बदलें और लाइन बदलें:

define('CONFIG_DIR', '');

सेवा

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

तथा

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

सेवा

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

5.) अपाचे सर्वर को पुनरारंभ करें और किया।


3
उबंटू 16.04 पर काम करता है
pjehan

7
उबंटू 18.04 पर काम करता है
साइमन एप्सकैंप

4
उबंटू 18.04, phpMyAdmin 4.8.0.1 - मुझे जरूरत हैmkdir /usr/share/phpmyadmin/tmp; chgrp www-data tmp; chmod g+w tmp;
बिलीनाह

उबंटू 16.04 सिर्फ इसे /usr/share/phpmyadminकाम करने के लिए निकाल रहा है। बाद के चरणों का पालन करने की आवश्यकता नहीं थी।
tushar.dahiwale

@billynoah समान यहाँ नए स्थापित के साथ। मैंने tmp निर्देशिका बनाई, इसे 777 पर सेट किया, Apache को पुनः आरंभ किया, phpMyAdmin से लॉग आउट किया और त्रुटियां दूर हो गईं।
जेस्केरी

38

फ़ाइल संपादित करें :'/usr/share/phpmyadmin/libraries/sql.lib.php'

बदलें :(count($analyzed_sql_results['select_expr'] == 1)

के साथ : (count($analyzed_sql_results['select_expr']) == 1

यह मेरे लिए काम किया


इसके लिए मेरे काम ने कंडीशन यू के आधार पर फिक्स इंटरनल 500 एरर को सॉल्व किया था, लेकिन पुरानी एरर इश्यू "phpmyadmin - count (): पैरामीटर एक एरे या ऑब्जेक्ट होनी चाहिए जो इम्प्लीमेंट्स काउंटेबल हो" हल नहीं है।
शशिके .3

यह मेरे लिए काम करने लगता है लेकिन क्या किसी को पता है कि ऐसा क्यों हुआ है? मेरा phpmyadmin बस ठीक काम कर रहा था और फिर अचानक मैंने आज लॉग इन किया और यह इस मुद्दे पर दिखाई दिया? उबंटू 18.04.2 एलटीएस
पहियोंमैनएक्स

UBuntu 18.04, विंग नगनेक्स, php 7.2
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

इसने मेरे लिए 18.04 को काम किया, धन्यवाद! सर्वर को पुनरारंभ करने की भी आवश्यकता नहीं है - PHP की व्याख्या 'लाइव' है।
जेल वेरा

); @JelleVeraa, आप विशेष मामला hehehe हैं
कलीम

32

अगर किसी को डीबी एक्सपोर्ट पेज में समान त्रुटि है (मुझे यह समस्या उबंटू 18.04 में थी), तो लाइन 551 /usr/share/phpmyadmin/libraries/plugin_interface.lib.phpको कोड के साथ फाइल में बदलें

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

इससे मुझे भी मदद मिली, लेकिन मुझे इसका जवाब और यह दोनों करना पड़ा। उबंटू 18.04
करुहांगा

2
यह त्रुटि संदेशों से छुटकारा पाने के लिए काम करता है, लेकिन मुझे लगता है कि यह सब एक साथ अगर बयान से बचा जाता है और मुझे अपने डेटाबेस निर्यात में कुछ भी नहीं मिलता है (डेटाबेस को पूरा करने पर पृष्ठ को ताज़ा करने के बाद नीचे दिखाई जा रही त्रुटियों का एक गुच्छा के साथ) एक छोटे फ़ाइल पदचिह्न के साथ निर्यात)
वॉरेन वांग

चुंबन, चुंबन, मैं तुम्हें प्यार करता हूँ।
नूह क्रैसर

1
डेबियन 9 पर लाइन 551 को बदलें: इसके if ($options != null && count($options) > 0) {साथ: if ($options != null) {फिर आप निर्यात कर सकते हैं
BitDEVil2K16

यह केवल एक है जो 18.04 को काम किया था
टीईटी Psy


24

Ubuntu-18.04 पर निम्नलिखित कदम आगे बढ़ें:

चरण 1) का पता लगाएं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 ($ विश्लेषित_sql_results)
     {
        $ GLOBALS लौटाएँ ['cfg'] ['याद रखें']
            &&! ($ Analyzed_sql_results [ 'is_count']
                || $ Analyzed_sql_results [ 'is_export']
                || $ Analyzed_sql_results [ 'is_func']
                || $ Analyzed_sql_results [ 'is_analyse'])
            && $ विश्लेषण किया गया_sql_results ['select_from']
            && ((रिक्त ($ विश्लेषित_सक्__रूप [[select_expr ']))
                || (गिनती ($ विश्लेषण किया गया_एसक्यूएल_सर्ट्स ['select_expr'] == 1)
                    && ($ विश्लेषण किया गया_एसक्यूएल_सर्ल्ट्स ['select_expr'] [0] == '*'))
            && गिनती ($ विश्लेषित_एसक्यूएल_सर्ल्ट्स ['select_tables']) == 1;
     }

चरण 4) उपरोक्त फ़ंक्शन को इसके साथ बदलें:

     फ़ंक्शन PMA_isRememberSortingOrder ($ विश्लेषित_sql_results)
     {
        $ GLOBALS लौटाएँ ['cfg'] ['याद रखें']
            &&! ($ Analyzed_sql_results [ 'is_count']
                || $ Analyzed_sql_results [ 'is_export']
                || $ Analyzed_sql_results [ 'is_func']
                || $ Analyzed_sql_results [ 'is_analyse'])
            && $ विश्लेषण किया गया_sql_results ['select_from']
            && ((रिक्त ($ विश्लेषित_सक्__रूप [[select_expr ']))
                || (गिनती ($ विश्लेषण किया गया_एसक्यूएल_सर्ट्स ['select_expr']) == 1)
                    && ($ विश्लेषण किया गया_एसक्यूएल_सर्ल्ट्स ['select_expr'] [0] == '*'))
            && गिनती ($ विश्लेषित_एसक्यूएल_सर्ल्ट्स ['select_tables']) == 1;
     }

चरण 4) सहेजें और करीब फ़ाइल और टर्मिनल पर कमांड के नीचे

sudo /usr/sbin/pma-secure

चरण 5) sudo service mysql reload

चरण 6) sudo service apache2 reload

यह मेरे लिए काम करता है .. गुडलक


MySQL और Apache रीलोड आवश्यक नहीं है।
ताकियासुमा

मुझे यह संदेश फ़ाइल संशोधनों के बाद मिला: "- रूट @ लल्ला: ~ # / usr / sbin / pma-Secure - phpMyAdmin स्थापना सुरक्षित करना ... - सेटअप स्क्रिप्ट कॉन्फ़िगरेशन लिखने में सक्षम नहीं होगी। - जड़ @ लल्ला: ~ # "
cl-r

22

इस फ़ाइल को खोलें: '/usr/share/phpmyadmin/lbooks/sql.lib.php'

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

खोज करने के लिए ctrl + w दबाएं (गणना ($ विश्लेषण किया गया_sl_results ['select_expr' ]==))

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

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

सर्वर को पुनरारंभ करें

 sudo service apache2 restart

इसके अलावा, यदि आप अभी भी उसी मुद्दे का सामना कर रहे हैं, तो निम्नलिखित करें।

इस फ़ाइल को खोलें /usr/share/phpmyadmin/lbooks/plugin_interface.lib.php

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

खोजें: यदि ($ विकल्प! = अशक्त && गिनती ($ विकल्प)> 0) {

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

निम्नलिखित कोड के साथ बदलें

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

अब सर्वर को सेव और रिस्टार्ट करें

sudo /etc/init.d/apache2 restart

आपने बस एक ब्रेस जोड़ा। लेकिन धन्यवाद। मैंने लाइन के अंत में अतिरिक्त ब्रेस को हटा दिया
redestructa

मेरे पास मेरे मैक पर xampp स्थापित है, मैं / usr / share / phpmyadmin फ़ोल्डर नहीं ढूंढ सका और इसलिए '/usr/share/phpmyadmin/lbooks/sql.lib.php' मेरे लिए यह असंगत अस्तित्व है, क्या आप इसमें मदद कर सकते हैं?
सौरभ वर्मा

18

मुझे लगता है कि सबसे अच्छा विकल्प Phpmyadmin को एक ऐसे संस्करण में अपडेट करना है, जिसमें यह पहले से तय है।

जब तक यह एक बहस के रूप में प्रकाशित नहीं हो जाता, तब तक आप इसे @ crimson-501 उत्तर की तरह कर सकते हैं, जिसे मैं नीचे कॉपी करूंगा:

  • आपका पहला कदम आधिकारिक Ubuntu रेपो से PMA (phpMyAdmin) स्थापित करना है apt-get install phpmyadmin:।
  • अगला, सीडी में यूएसआर / शेयर निर्देशिका cd /usr/share:।
  • तीसरा, phpmyadmin निर्देशिका को हटा दें rm -rf phpmyadmin:।
  • अब हम हमारी प्रणाली (ध्यान दें कि आप wget जरूरत: पर नवीनतम पीएमए संस्करण को डाउनलोड करने की जरूरत है apt-get install wget): wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-english.zip" मुझे इस आदेश के तर्कों की व्याख्या, -पी पथ को परिभाषित करता है और "link.zip" वर्तमान में (7/17/18 है ) पीएमए का नवीनतम संस्करण। आप उन लिंक को यहां पा सकते हैं ।
  • इस अगले चरण के लिए आपको अनज़िप ( apt-get install unzip) की आवश्यकता है unzip phpMyAdmin-4.9.4-english.zip:। हमने अभी पीएमए अनजिप किया है, अब हम इसे अंतिम घर में स्थानांतरित कर देंगे।
  • cpहमारी फ़ाइलों को स्थानांतरित करने के लिए (कॉपी) कमांड का उपयोग करने देता है ! ध्यान दें कि हमें -rतर्क जोड़ना होगा क्योंकि यह एक फ़ोल्डर है। cp -r phpMyAdmin-4.9.4-english phpmyadmin
  • अब यह साफ करने का समय है rm -rf phpMyAdmin-4.9.4-english:।

पढ़ते रहिये!

PMA में लॉग इन करने के बाद अब आपको दो त्रुटियां दिखाई देंगी।

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 ब्लोफिश गुप्त चर प्रविष्टि:

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

अब फाइल को सेव करें और बंद करें।

  • अब हम PMA: mkdir tmp& के लिए एक tmp निर्देशिका बनाएँगे chown -R www-data:www-data /usr/share/phpmyadmin/tmp। अंतिम कमांड Apache वेब सर्वर को tmp निर्देशिका का मालिक होने देता है और इसे संपादित करता है।

यह उत्तर अविश्वसनीय रूप से उपयोगी रहा है! मेरे लिए समस्या का हल! धन्यवाद! पुनश्च: आप ब्लोफिश जनरेटर ऑनलाइन पा सकते हैं।
लुकाबस

और इस लिंक पर समाधान: devanswers.co/manually-upgrad-phpmyadmin एक समान योजना का अनुसरण करता है, आसान लोगों के साथ ब्लोफिश के चरणों को
बदलने के अलावा

पुराने संस्करणों की कॉन्फिग फाइलों को एडिट करने की तुलना में यह काफी बेहतर उपाय है।
andromeda

17

इस फ़ंक्शन को फ़ाइल में बदलने का प्रयास करें: /usr/share/phpmyadmin/lbooks/sql.lib.pp

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

धन्यवाद! यह पंक्ति वह जगह है जहां मुझे अंत में गलत किया गया था, जहां मुझे 3 क्लोजिंग ब्रैकेट की आवश्यकता थी, जिसमें मुझे केवल 2 क्लोजिंग ब्रैकेट की आवश्यकता थी और& $ ($ विश्लेषण किया गया_sql_results ['select_expr'] [0] == '*' ')। Phpmyadmin 4.6, php 7.2.10, ubuntu 18.4.1
वांग'ल पखरीन

17

उबंटू 18.04 एलटीएस

ये वो कदम हैं, जिन्होंने मेरे लिए काम किया। कई, अपने Ubuntu PPA पर स्वचालित अपडेट प्रदान करने के लिए विलियम डेस्पोर्ट्स को बहुत धन्यवाद।

चरण 1 ( विलियम डेस्पोर्ट्स पोस्ट से )
$sudo add-apt-repository ppa:phpmyadmin/ppa

चरण 2
$sudo apt-get --with-new-pkgs upgrade

चरण 3
$sudo service mysql restart

यदि आपके पास mysql को पुनरारंभ करने के मुद्दे हैं, तो आप निम्न अनुक्रम
$ sudo service mysql stop;
$ के साथ भी पुनरारंभ कर सकते हैंsudo service mysql start;


2
समस्या को Ubuntu 18.04 LTS पर हल करता है। स्वीकृत उत्तर होना चाहिए।
11

15

Ubuntu 18.10 (दिसंबर, 2018)

लाइन 613, 614, 615, के साथ बदलें:

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

यह मेरे लिए काम कर रहा है .. mysql या किसी भी चीज़ को अपग्रेड करने की आवश्यकता नहीं है ... धन्यवाद @ole
नितिन वघानी

15

मेरे लिए काम करें .. उबंटू 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 पुनः लोड करें।

किया हुआ!!!


1
लाइन 613 में, बदलकर|| (count($analyzed_sql_results['select_expr']) == 1
tnductam

11

Phpmyadmin (4.6.6deb5) के मेरे संस्करण के लिए, मैंने लाइन 613 पाया, और महसूस किया कि गिनती () कोष्ठक ठीक से बंद नहीं हुए थे। अगली रिलीज़ तक इसे अस्थायी रूप से ठीक करने के लिए, बस बदलें:

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

सेवा:

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

फ़ंक्शन कॉल को बंद करने के लिए एक गुम कोष्ठक थे || (गिनती ($ विश्लेषण किया गया_एसक्यूएल_सर्ल्ट्स ['select_expr']) == 1 सही कथन है
रुबेरिंडा धैर्य

उन लोगों के लिए फ़ाइल पथ "/usr/share/phpmyadmin/lbooks/sql.lib.php" है जो यह नहीं जानते हैं कि इसे कहां खोजना है।
अली इमरान

9

यह PHPMyAdmin के बाद के संस्करणों में तय किया गया है। उबंटू 18.04.2 के लिए उबंटू सॉफ्टवेयर रिपॉजिटरी संस्करण 4.6.6.5 रखता है, जबकि वे वर्तमान में 4.9.0.1 पर हैं। अपने PHPMyAdmin इंस्टॉलेशन को अपडेट करने से यह समस्या ठीक हो जाएगी, लेकिन कोड की केवल एक पंक्ति को संपादित करने से अधिक जोखिम भरा साबित हो सकता है। यहाँ मैंने इसे अपने उबंटू सर्वर पर कैसे किया। सभी ऑपरेटिंग सिस्टम के लिए चरण अनिवार्य रूप से एक अलग पथ के साथ समान हैं।

  1. PHPMyAdmin डाउनलोड करें ।
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. बैकअप अपने पुराने PHPMyAdmin स्थापना।
cp -r /usr/share/phpmyadmin ~/phpmyadmin-backup
  1. अपने पुराने PHPMyAdmin पर अपने नए PHPMyAdmin ड्रॉप करें
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 की तुलना में अविश्वसनीय रूप से धीमा था। गति में वृद्धि कुछ के लिए शुद्ध जादू था, हालांकि मैं "वर्डप्रेस" गुणवत्ता का था।


मैं 1 और 2 के क्रम को बंद कर दूंगा, और इससे पहले कि मैं cd / tmp को छोड़ दूं, लेकिन उस तरफ से, उत्कृष्ट, धन्यवाद।
क्रिस

यह मेरे लिए काम करता है, सरल समाधान के लिए धन्यवाद!
uestcfei 10

8

UBUNTU पर काम करता है 16.04.3 बस खुला

usr / share / पुस्तकालयों / sql.lib.php

संशोधित

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

सेवा

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



5

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

यह वही है जो मैंने लाइन 614 में बदल दिया और phpmyadmin बिना किसी त्रुटि के काम करता है। आवश्यकता एक (गिनती से पहले, और एक )से पहले ==। बस।


4

फ़ाइल संपादित करें '/usr/share/phpmyadmin/lbooks/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));"

3

हाय निम्नलिखित मेरी एक ही समस्या को पूरी तरह से हल (आयात / निर्यात और इतने पर):

फिक्स बग 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 संस्करण में। यह काउंट () या साइज़ोफ़ () का उपयोग नहीं कर सकता है। सरणी प्रकार के लिए। फोर्स पैरामीटर से सरणी इस बग को हल करने का आसान तरीका है, ..."

समस्या को हल करने के लिए मूल लेखक के लिए धन्यवाद! मैं इसे साझा करने की कोशिश करता हूं!


3

/usr/share/phpmyadmin/sql.lib.phpएलिवेटेड विशेषाधिकारों के साथ फ़ाइल खोलें , और फ़ंक्शन में निम्नलिखित को संपादित करें PMA_isRememberSortingOrder():

  1. प्रारंभिक त्रुटि को ठीक करने के लिए ~ 613 पंक्ति:
    • बदलने के || count($analyzed_sql_results['select_expr'] == 1)
    • साथ में || (count($analyzed_sql_results['select_expr']) == 1)
  2. ~ 500 त्रुटि को ठीक करने के लिए लाइन 614 जो संभवतः अनुसरण करेगी:
    • बदलने के && ($analyzed_sql_results['select_expr'][0] == '*')))
    • साथ में && ($analyzed_sql_results['select_expr'][0] == '*'))

अपने Apache सर्वर को पुनरारंभ करें: sudo service apache2 restart :।

लिनक्स टकसाल 19.1 पर उबंटू 18.04 पर आधारित, PhpMyAdmin 4.6.6 और PHP 7.2 के साथ परीक्षण किया गया।


3

मैंने उपरोक्त सभी समाधानों की कोशिश की लेकिन मेरे लिए काम नहीं किया।

इसे इस्तेमाल करे:-

PHP का आवश्यक संस्करण स्थापित करें (मेरे मामले में 7.0) और फिर टर्मिनल में टाइप करें

sudo update-alternatives --config php

आउटपुट इस तरह होगा: -

यहाँ छवि विवरण दर्ज करें

फिर आप केवल चयन संख्या (मेरे मामले में 1) दर्ज करके PHP के किसी भी संस्करण पर स्विच कर सकते हैं।

आशा है कि यह अन्य मदद कर सकता है - :)


2

खिड़कियों का उपयोग करते समय मेरे पास यह मुद्दा था और ऊपर की प्रतिक्रियाओं ने मेरे लिए इसे हल किया था, हालांकि जब मैंने लिनक्स (ubuntu 18.04 LTS) पर स्विच किया तो मेरे पास एक ही मुद्दा था और यह पता नहीं लगा सका कि इसे कैसे हल किया जाए क्योंकि मैंने फ़ाइल नहीं देखी थी '/usr/share/phpmyadmin/libraries/sql.lib.php'।

यह sql.lib.php फ़ाइल मेरे फ़ोल्डर / फ़ोल्डर / lppp निर्देशिका के शेयर फ़ोल्डर या phpmyadmin / पुस्तकालयों फ़ोल्डर में नहीं थी - जब से मैं अपने ubuntu पर xampp का उपयोग कर रहा था। Xampp पर किए गए अपडेट के आधार पर (क्योंकि मैंने अब तक के नवीनतम इंस्टॉलेशन का उपयोग किया है) सेटअप।

जवाब अभी भी बदलना है: (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अपनी निर्देशिका में दस्तावेजों के मिलान के लिए खोज करने और तदनुसार संपादित करने के लिए उपयोग करें


2

बदलें समारोह:

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

फ़ाइल संपादित करें /usr/share/phpmyadmin/libraries/sql.lib.php

अपनी त्रुटि देखें

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

इस लाइन पर जाएं और फंक्शन कॉल को हटा दें।

इससे मेरा काम बनता है।


2

मैं देख रहा हूं कि आप हमारी फाइलों से संपादन या अपडेट कर रहे हैं

उन लोगों के लिए जो स्वचालित अपडेट चाहते हैं, आप हमारे Ubuntu PPA का उपयोग कर सकते हैं

sudo add-apt-repository ppa: phpmyadmin / ppa

और डेबियन उपयोगकर्ताओं के लिए आपको डेबियन के अगले संस्करण की प्रतीक्षा करने या पीपीए का उपयोग करने की आवश्यकता होगी

Ubuntu 20 में phpMyAdmin 4.9 या बाद का संस्करण है

हमारे ट्रैकर पर डेबियन मुद्दा

हमारे ट्रैकर पर गणना योग्य मुद्दे

TLDR इस समस्या को हल करने के लिए नवीनतम 4.9 या 5.0 संस्करण में अद्यतन करें।


1

Ubuntu 18.04 पर MariaDb और Nginx के साथ, मैंने इसे अद्यतन करने वाली फ़ाइल /usr/share/phpmyadmin/lbooks/sql.lib.php को निम्नानुसार हल किया:

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

@ गुयेन द्वारा उल्लिखित उत्तर एक 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"

1

विन्यास फाइल में कोड में त्रुटि (बनाम @ ĦΔŇĐŘΔ ŇΔҜҜΔ जवाब @Jacky गुयेन) भिन्न हो सकते हैं, के रूप में सामान्य समाधान जवाब देने के लिए किया जाएगा एक) विन्यास फाइल में हालत तर्क को सही समझ बनाने के लिए (एक्स) या ख) को सही स्थापित / वर्तमान phpmyadmin


एक के लिए के रूप में)

  1. त्रुटि कोड
    के साथ फ़ाइल खोलें टर्मिनल लोगों के लिए: sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
    नियमित लोगों के लिए:sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php

  2. शर्त खोजें - मूल रूप से खोजें $analyzed_sql_results['select_expr']

  3. अब तर्क यह जाँचने के लिए होना चाहिए कि क्या यह उप सरणी खाली है, या, क्या इसमें मान के साथ सिर्फ 1 तत्व है "*

  4. तो मूल रूप से
    बीच में ब्लॉक && $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 "*"
    )
)

अपने कोड को इंडेंट करने और सुशोभित करने के लिए यह एक अच्छा उदाहरण है, अगर इसे सही ढंग से प्रेरित किया जाएगा, मेरा मानना ​​है कि ऐसा कभी नहीं होगा, या कम से कम, अधिक आसानी से मिल जाएगा।


मेरे पास मेरे मैक पर xampp स्थापित है, मैं / usr / share / phpmyadmin फ़ोल्डर नहीं ढूंढ सका और इसलिए '/usr/share/phpmyadmin/lbooks/sql.lib.php' मेरे लिए यह असंगत अस्तित्व है, क्या आप इसमें मदद कर सकते हैं?
सौरभ वर्मा

@ सौरभ वर्मा sql.lib.php के लिए या phpmyadmin फ़ोल्डर के लिए एक फ़ाइल खोज करते हैं - यदि आपके पास phpmyadmin है, तो इसे कहीं स्थापित किया जाना चाहिए
jave.web
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.