सिंक से बाहर निकलता है; अब आप यह कमांड नहीं चला सकते


94

मैं अपने PHP कोड को निष्पादित करने की कोशिश कर रहा हूं, जो mysqli के माध्यम से दो MySQL प्रश्नों को कॉल करता है, और त्रुटि "सिंक से बाहर निकलना, आप इस कमांड को अब नहीं चला सकते हैं"।

यहाँ कोड का उपयोग कर रहा हूँ

<?php
$con = mysqli_connect("localhost", "user", "password", "db");
if (!$con) {
    echo "Can't connect to MySQL Server. Errorcode: %s\n". Mysqli_connect_error();
    exit;
}
$con->query("SET NAMES 'utf8'");
$brand ="o";
$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %";
if ($numRecords = $con->prepare($countQuery)) {
    $numRecords->bind_param("s", $brand);
    $numRecords->execute();
    $data = $con->query($countQuery) or die(print_r($con->error));
    $rowcount = $data->num_rows;
    $rows = getRowsByArticleSearch("test", "Auctions", " ");
    $last = ceil($rowcount/$page_rows);
}  else {

print_r($con->error);
}
foreach ($rows as $row) {
    $pk = $row['ARTICLE_NO'];
    echo '<tr>' . "\n";
    echo '<td><a href="#" onclick="updateByPk(\'Layer2\', \'' . $pk . '\')">'.$row['USERNAME'].'</a></td>' . "\n";
    echo '<td><a href="#" onclick="updateByPk(\'Layer2\', \'' . $pk . '\')">'.$row['shortDate'].'</a></td>' . "\n";
    echo '<td><a href="#" onclick="deleterec(\'Layer2\', \'' . $pk . '\')">DELETE RECORD</a></td>' . "\n";
    echo '</tr>' . "\n";
}
function getRowsByArticleSearch($searchString, $table, $max) {
    $con = mysqli_connect("localhost", "user", "password", "db");
    $recordsQuery = "SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME, date_format(str_to_date(ACCESSSTARTS, '%d/%m/%Y %k:%i:%s'), '%d %m %Y' ) AS shortDate FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE '%?%' ORDER BY str_to_date(ACCESSSTARTS, '%d/%m/%Y %k:%i:%s')" . $max;
    if ($getRecords = $con->prepare($recordsQuery)) {
        $getRecords->bind_param("s", $searchString);
        $getRecords->execute();
        $getRecords->bind_result($ARTICLE_NO, $USERNAME, $ACCESSSTARTS, $ARTICLE_NAME, $shortDate);
        while ($getRecords->fetch()) {
            $result = $con->query($recordsQuery);
            $rows = array();
            while($row = $result->fetch_assoc()) {
                $rows[] = $row;
            }
            return $rows;
        }
    }
}

मैंने इस पर पढ़ने की कोशिश की है, लेकिन मैं इस बारे में अनिश्चित हूं कि क्या करना है। मैंने स्टोर रिजल्ट और फ्री रिजल्ट के बारे में पढ़ा है, हालाँकि इनका इस्तेमाल करते समय कोई फर्क नहीं पड़ा है। मैं इस बात पर अनिश्चित हूं कि यह त्रुटि किस बिंदु पर हो रही है, और जानना चाहूंगा कि यह क्यों हो रहा है, और इसे कैसे ठीक किया जाए।

मेरे डिबग स्टेटमेंट्स के अनुसार, पहले अगर काउंटिक्यू के लिए लूप भी दर्ज नहीं किया जा रहा है, क्योंकि पास में मेरे एसक्यूएल सिंटैक्स में कोई त्रुटि है '% ? %'। हालाँकि, अगर मैं सिर्फ *एक LIKE क्लॉज के आधार पर सीमित करने की कोशिश करने के बजाय चयन करता हूँ, तो भी मुझे सिंक त्रुटि से कमांड मिलती है।

जवाबों:


115

आपके पास एक साथ दो प्रश्न नहीं हो सकते हैं क्योंकि mysqli डिफ़ॉल्ट रूप से अप्रयुक्त प्रश्नों का उपयोग करता है (तैयार किए गए बयानों के लिए; यह वेनिला के लिए विपरीत है mysql_query)। आप या तो पहले से एक सरणी और लूप में ला सकते हैं, या mysqli को प्रश्नों का उपयोग करके बफर कर सकते हैं (उपयोग कर $stmt->store_result())।

देखें यहाँ जानकारी के लिए।


3
मैं मानता हूँ, mysqli थोड़ा दिमागी रूप से क्षतिग्रस्त है। हालांकि यह पीडीओ mysql ड्राइवर के साथ सही काम करता है।

17
आपके पास एक साथ दो प्रश्न हो सकते हैं - आपको बस चलाने की ज़रूरत है $stmt->store_result();मुझे लगता है कि आपकी प्रतिक्रिया को और अधिक स्पष्ट करना चाहिए।
शैडो

3
इस जानकारी को खोजने के लिए मुझे उम्र लेते हुए - नहीं, जहां यह आसानी से प्रदर्शित होता है। धन्यवाद। मैं अपने प्रश्नों $select_stmt->close();को उन्हें विभाजित करने के लिए अलग करता हूं (एक साथ नहीं बल्कि प्रक्रियात्मक
n34_panda

@flussence, आपने कहा कि "mysqli डिफ़ॉल्ट रूप से अप्रभावित प्रश्नों का उपयोग करता है"। तो हम इसे अन्यथा करने के लिए कैसे निर्धारित कर सकते हैं?
पचेरियर

1
मुझे पता है कि यह अजीब लगता है, लेकिन मुझे mysqli_query के साथ एक क्वेरी निष्पादित करते समय यह त्रुटि आई थी कि एक विदेशी कुंजी का उल्लंघन हो रहा है ... इसलिए यदि यह किसी के साथ होता है, तो जांचें कि आपकी INSERT क्वेरी किसी भी विदेशी कुंजी का उल्लंघन नहीं कर रही है
luca_rr

33

मैंने अपने C एप्लिकेशन में इस समस्या को हल किया - यहां बताया कि मैंने यह कैसे किया:

  1. Mysql मंचों से उद्धरण:

    जब आप अनुप्रयोग के अंदर अर्धविराम सीमांकक के साथ अपनी क्वेरी समाप्त करते हैं तो यह त्रुटि उत्पन्न होती है । जबकि कमांड लाइन से या क्वेरी ब्राउज़र में इसे निष्पादित करते समय अर्धविराम सीमांकक के साथ एक क्वेरी को समाप्त करना आवश्यक है, अपने आवेदन के अंदर क्वेरी से सीमांकक हटा दें।

  2. मेरी क्वेरी चलाने और परिणामों से निपटने के बाद [C API: mysql_store_result()], मैं कई और संभावित रूप से लंबित परिणामों पर पुनरावृति करता हूं जो कि कई SQL कथन निष्पादन जैसे कि दो या अधिक चयन कथन (परिणामों से निपटने के बिना बैक टू बैक) के माध्यम से होता है।

    तथ्य यह है कि मेरी प्रक्रियाएं कई परिणाम नहीं लौटाती हैं, लेकिन डेटाबेस को यह नहीं पता है कि जब तक मैं निष्पादित नहीं करता हूं: [C API: mysql_next_result()]। मैं इसे लूप में करता हूं (अच्छे उपाय के लिए) जब तक कि यह नॉन-जीरो न लौटे। जब वर्तमान कनेक्शन हैंडलर जानता है कि किसी अन्य क्वेरी को निष्पादित करना ठीक है (मैं अपने हैंडलर को कनेक्शन ओवरहेड को कम करने के लिए कैश करता हूं)।

    यह वह लूप है जिसका मैं उपयोग करता हूं:

    for(; mysql_next_result(mysql_handler) == 0;) 
      /* do nothing */;

मैं PHP नहीं जानता, लेकिन मुझे यकीन है कि यह कुछ इसी तरह का है।


11
यह मेरे लिए था। PHP में मैंने अभी जोड़ा: जबकि (mysqli_next_result ($ con));
जोश

उस उत्तर के लिए धन्यवाद जिसने मेरी समस्या हल कर दी। मैंने सीमांकक हटा दिया और यह काम करता है। मैंने अपने परिणामों को मुक्त (प्राप्त) या संग्रहीत नहीं किया था, लेकिन क्वेरी के एक स्टेटमेंट को समाप्त करने के बाद कर्सर को फिर से बंद कर दूंगा।
चेन एक्सई

@ जोश, कैसे करें विरासत mysqlविस्तार में?
पचेरियर

1
क्वेरी के अंत में अर्धविराम को हटाकर "कमांड को सिंक से बाहर कर दिया गया है; पायथन MySQLdb का उपयोग करते समय आप इस कमांड को अब चला नहीं सकते"।
जीनोम

17

मुझे आज भी यही समस्या थी, लेकिन केवल एक संग्रहीत प्रक्रिया के साथ काम करने पर। यह क्वेरी को एक बहु क्वेरी की तरह व्यवहार करता है, इसलिए आपको दूसरी क्वेरी बनाने से पहले उपलब्ध अन्य परिणामों का "उपभोग" करने की आवश्यकता है।

while($this->mysql->more_results()){
    $this->mysql->next_result();
    $this->mysql->use_result();
}

यह एक महत्वपूर्ण बिंदु है: संग्रहीत कार्यविधियाँ किसी भी परिणाम के ऊपर सेट परिणाम लौटाती हैं और सपा में कोड सेट कर सकती है। आपको इसे संभालना होगा या इस त्रुटि को प्राप्त करना होगा: stackoverflow.com/a/2315229/4495850
रिचर्ड

11

मैं $ mysqli-> क्वेरी के रूप में अच्छी तरह से संग्रहीत प्रक्रियाओं के साथ काम करने से पहले हर बार इस फ़ंक्शन को कॉल करता हूं।

function clearStoredResults(){
    global $mysqli;

    do {
         if ($res = $mysqli->store_result()) {
           $res->free();
         }
        } while ($mysqli->more_results() && $mysqli->next_result());        

}

5

एक बार आपने इस्तेमाल किया

stmt->execute();

आप मई इसे बंद एक और क्वेरी का उपयोग करने के लिए।

stmt->close();

यह समस्या मुझे घंटों तक शिकार कर रही थी। उम्मीद है, यह तुम्हारा ठीक कर देगा।


1
बयान को बंद करना आवश्यक नहीं है। जैसा कि @stalinbeltran ने उत्तर दिया, हमें दूसरे को तैयार करने से पहले एक बयान के परिणाम का "उपभोग" करने की आवश्यकता है। तो, $stmt1->execute(); $stmt2=$conn->prepare(...)यह त्रुटि देगा, लेकिन $stmt1->execute(); $result1=$stmt1->get_result(); $stmt2=$conn->prepare(...)ठीक काम करेगा।
जे। दादानिया

भाई यह मुझे धन्यवाद करने में मदद की। f हर कोई जो यह कहता है और वह है, मैंने पहले वाले को बंद करने से पहले दो बार mysqli_prepare का इस्तेमाल किया। यह काम करता हैं।
अभिनाश मांझी

2

मैं CodeIgniter का उपयोग करता हूं। एक सर्वर ठीक है ... यह एक शायद अधिक पुराना है ... वैसे भी उपयोग कर रहा है

$this->db->reconnect();

ठीक कर दिया।


7
यह मुद्दे को कैसे संबोधित करता है?
जेरेमी जे स्टारचेर

4
@ नोर्मन, यह समस्या को "ठीक" नहीं करता है। यह केवल पूरे कनेक्शन को फेंकने और फिर से जोड़ने से बचता है। यह प्रदर्शन के दृष्टिकोण से बिल्कुल भी समझ में नहीं आता है।
पचेरियर

1

समस्या MySQL क्लाइंट C लाइब्रेरी है, जिस पर अधिकांश MySQL API बनाए गए हैं। समस्या यह है कि सी लाइब्रेरी प्रश्नों के एक साथ निष्पादन का समर्थन नहीं करती है, इसलिए इसके ऊपर बने सभी एपीआई भी नहीं होते हैं। भले ही आप अप्रयुक्त प्रश्नों का उपयोग करें। यह एक कारण है कि अतुल्यकालिक MySQL एपीआई क्यों लिखा गया था। यह सीधे टीसीपी का उपयोग करके MySQL सर्वर के साथ संचार करता है और वायर-प्रोटोकॉल एक साथ प्रश्नों का समर्थन करता है

आपका समाधान या तो एल्गोरिथ्म को संशोधित करना है, इसलिए आपको एक ही बार में प्रगति करने की आवश्यकता नहीं है, या बफ़र किए गए प्रश्नों का उपयोग करने के लिए उन्हें बदलना होगा, जो संभवतः सी लाइब्रेरी में उनके अस्तित्व के मूल कारणों में से एक है (अन्य के लिए है) एक प्रकार का कर्सर प्रदान करना)।


1
मुझे एक ही बार में प्रगति करने की आवश्यकता नहीं है, मैं अपनी दूसरी क्वेरी से पहले पूरी तरह से समाप्त करने के लिए countQuery के लिए खुश हूं, लेकिन मैं अनिश्चित हूं कि काउंटिविज को प्रोग्रेस में होने से कैसे रोका जाए

आप countQuery से किसी भी डेटा को पुनर्प्राप्त नहीं कर रहे हैं, यही कारण है कि यह अभी भी 'प्रगति में है'। या तो सभी पंक्तियों को पुनः प्राप्त करें, या इसे SELECT COUNT (ARTICLE_NO) में बदलें और उस पंक्ति को प्राप्त करें। फिर आपकी दूसरी क्वेरी चलेगी।
स्टेटिक्सन

जब आप "अतुल्यकालिक MySQL एपीआई" कहते हैं, तो आप किस एपीआई का उल्लेख कर रहे हैं? इसके अलावा, मुझे आपका निष्कर्ष नहीं मिल रहा है। एपीआई को अतुल्यकालिक होने की आवश्यकता के बिना इस "समस्या" को ठीक किया जा सकता है।
पचेरियर

1
ईमानदार होने के लिए @Pacerier मुझे अब यकीन नहीं है कि मेरा क्या मतलब है! MySQL कनेक्टिविटी में छह साल में बहुत कुछ हुआ है इसलिए मैंने जो भी सोचा था कि मैं इसका नाम बदल दिया गया था और शायद किसी अन्य नए ड्राइवर में / या शामिल किया गया था।
स्टेटिक्सन

1

इस समस्या को हल करने के लिए आपको उपयोग करने से पहले परिणाम डेटा संग्रहीत करना होगा

$numRecords->execute();

$numRecords->store_result();

बस इतना ही


1

दूसरा कारण: store_result () को दो बार नहीं बुलाया जा सकता है।

उदाहरण के लिए, निम्न कोड में, त्रुटि 5 मुद्रित है।

<?php

$db = new mysqli("localhost", "something", "something", "something");

$stmt = $db->stmt_init();
if ($stmt->error) printf("Error 1 : %s\n", $stmt->error);

$stmt->prepare("select 1");
if ($stmt->error) printf("Error 2 : %s\n", $stmt->error);

$stmt->execute();
if ($stmt->error) printf("Error 3 : %s\n", $stmt->error);

$stmt->store_result();
if ($stmt->error) printf("Error 4 : %s\n", $stmt->error);

$stmt->store_result();
if ($stmt->error) printf("Error 5 : %s\n", $stmt->error);

(यह मूल नमूना कोड के लिए प्रासंगिक नहीं हो सकता है, लेकिन यह इस त्रुटि के जवाब पाने वाले लोगों के लिए प्रासंगिक हो सकता है।)


1

यहाँ है क्या मेरी समस्या थी !!!

परम बाइंडिंग "डायनेमिक" थी, इसलिए मेरे पास एक वैरिएबल था जो डेटा के पैराम को सेट करता है ताकि bind_param का उपयोग किया जा सके । तो वह चर गलत था, लेकिन "गलत परम डेटा" जैसी त्रुटि को फेंकने के बजाय यह कहता है कि "सिंक ब्ला ब्ला से बाहर" इसलिए मैं भ्रमित था ...


0

मुझे लगता है कि समस्या यह है कि आप फ़ंक्शन में एक नया कनेक्शन बना रहे हैं, और फिर इसे अंत में बंद नहीं कर रहे हैं। आप मौजूदा कनेक्शन में पास होने की कोशिश क्यों नहीं कर रहे हैं?

एक और संभावना यह है कि आप थोड़ी देर के लूप के बीच से बाहर लौट रहे हैं। आप उस बाहरी भ्रूण को कभी पूरा नहीं करते।


1
अगर मैं $ con को वैश्विक बनाता हूं (जो कि बुरा व्यवहार है, लेकिन आपको जैसा वर्णन करना चाहिए, वैसा ही काम करना चाहिए) तब भी मेरी वही त्रुटि है।

1
मुझे नहीं लगता कि एक वैश्विक संबंध खराब व्यवहार है
मैथ्यू जे

0

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


0

यह मूल प्रश्न से संबंधित नहीं है, लेकिन मेरे पास एक ही त्रुटि-संदेश था और यह धागा Google में पहली हिट है और मुझे यह पता लगाने में थोड़ा समय लगा कि समस्या क्या थी, इसलिए इसका दूसरों के लिए उपयोग हो सकता है:

मैं mysqli का उपयोग नहीं कर रहा हूं, फिर भी mysql_connect का उपयोग करते हुए मैंने कुछ सरल क्वेरी की थी, लेकिन एक क्वेरी ने अन्य सभी क्वेरी को एक ही कनेक्शन में विफल कर दिया।

मैं mysql 5.7 और php का उपयोग करता हूं 5.6 मेरे पास डेटा-टाइप "JSON" के साथ एक तालिका थी। जाहिर है, मेरे php-वर्जन ने mysql से रिटर्न वैल्यू को नहीं पहचाना (php को अभी यह नहीं पता था कि JSON-Format का क्या करना है क्योंकि अंतर्निहित mysql-मॉड्यूल बहुत पुराना था (कम से कम मुझे लगता है)

अभी के लिए मैंने JSON-Field-Type को टेक्स्ट में बदल दिया (अब के लिए मुझे मूल mysql JSON-कार्यक्षमता की आवश्यकता नहीं है) और सब कुछ ठीक काम करता है


0

आप या तो डेटा प्राप्त करने में के लिए बफर या unbuffered परिणाम सेट का उपयोग करते हैं, पहले तो आप बस प्राप्त किए गए डेटा स्मृति से साफ करना होगा, एक बार आप प्राप्त किए गए सभी डेटा है । जब तक आप एक ही कनेक्शन पर एक और MYSQL प्रक्रिया को कार्यान्वित नहीं कर सकते, जब तक कि आप प्राप्त की गई मेमोरी को क्लियर नहीं करते हैं। अपनी स्क्रिप्ट के दाहिने छोर में इसे नीचे जोड़ें, ताकि यह समस्या को हल करे

$numRecords->close(); or $numRecords->free(); // This clears the referencing memory, and will be ready for the next MYSQL fetch

PHP प्रलेखन से संदर्भ


1
यदि आपको कुछ रिकॉर्ड की आवश्यकता नहीं है, तो आपको उन्हें पहले स्थान पर नहीं चुनना चाहिए था। बस उन्हें मुक्त करने के बजाय बस उन्हें बिल्कुल न चुनें। और अगर ऐसा नहीं है और आपने चुने गए सभी रिकॉर्डों को प्राप्त कर लिया है, तो ऐसी कोई त्रुटि नहीं होगी और साथ ही साथ करीबी () या मुफ्त () कॉल करने की कोई आवश्यकता नहीं है। संग्रहीत प्रक्रियाओं के अनुसार, एक कम बर्बर विधि है, जो ऊपर वर्णित उत्तरों में वर्णित है
आपका कॉमन सेंस

0

मैं Doctrine DBAL QueryBuilder का उपयोग करके इस त्रुटि में भाग गया।

मैंने QueryBuilder के साथ एक क्वेरी बनाई है जो कॉलम सबसेलेट्स का उपयोग करती है, जिसे QueryBuilder के साथ भी बनाया गया है। सबसेलेक्ट्स केवल के माध्यम से बनाए गए थे $queryBuilder->getSQL()और निष्पादित नहीं किए गए थे । दूसरी सबसेलेक्ट बनाने में त्रुटि हुई। $queryBuilder->execute()उपयोग करने से पहले प्रत्येक सबसिले को अनंतिम रूप से निष्पादित करके $queryBuilder->getSQL(), सब कुछ काम किया। यह ऐसा है जैसे कि कनेक्शन $queryBuilder->connectionप्रत्येक subselect पर नए QueryBuilder उदाहरण के बावजूद, वर्तमान SQL तैयार करने से पहले एक नया SQL बनाने के लिए अमान्य स्थिति में रहता है।

मेरा समाधान QueryBuilder के बिना subselects लिखना था।


0

मैं ODBC का उपयोग कर रहा हूं, और यह फिक्स मेरे लिए काम करता है: ODBC -> टैब सिस्टम DSN -> अपने डेटा स्रोत को कॉन्फ़िगर करने के लिए डबल क्लिक करें -> विवरण -> टैब कर्सर -> अनचेक करें [केवल-केवल कर्सर का कैश परिणाम न करें] - > ओके पर क्लिक करें


0

मैं अक्सर इस त्रुटि को मारता हूं और यह हमेशा होता है जब मैं एक संग्रहीत प्रक्रिया चलाता हूं जिसे मैं phpmyadmin या SQL कार्यक्षेत्र में डिबगिंग कर रहा हूं (मैं mysqli के साथ जुड़ने में php में काम कर रहा हूं)।

त्रुटि इस तथ्य से उत्पन्न होती है कि डिबगिंग में कोड में रणनीतिक बिंदुओं पर सेलेक्ट स्टेटमेंट डालने के लिए मुझे चर की स्थिति बताने के लिए शामिल है, आदि। एक संग्रहीत कार्यविधि चलाना जो इन क्लाइंट वातावरणों में कई परिणाम सेट का उत्पादन ठीक है, लेकिन यह "उत्पादन" करता है Php से कॉल करने पर "सिंक से बाहर" त्रुटि मिलती है। समाधान हमेशा कमेंट-आउट करने या डिबगिंग चयन को हटाने के लिए होता है, इसलिए प्रक्रिया का केवल एक परिणाम निर्धारित होता है।


-1

मेरी समस्या यह थी कि मैं पहले तैयार बयान का उपयोग कर रहा था और फिर मैं उसी पृष्ठ पर mysqli क्वेरी का उपयोग कर रहा था और "कमांड से सिंक करने में त्रुटि हो रही थी; अब आप इस कमांड को नहीं चला सकते हैं"। त्रुटि तब थी जब मैं उस कोड का उपयोग कर रहा था जिसमें वक्तव्य तैयार था।

मैंने जो किया वह सवाल को बंद करने का था। और यह काम किया।

mysqli_stmt_close ($ stmt);

मेरा कोड

get_category.php (यहां तैयार स्टेटमेंट का उपयोग करके)

    <?php


    global $connection;
    $cat_to_delete =    mysqli_real_escape_string($connection, $_GET['get'] );

    $sql = "SELECT category_name FROM categories WHERE category_id = ? ;";


    $stmt = mysqli_stmt_init($connection);

    if (!mysqli_stmt_prepare($stmt, $sql))
        $_SESSION['error'] = "Error at preaparing for deleting query. mysqli_stmt_error($stmt) ." & redirect('../error.php');

    mysqli_stmt_bind_param($stmt, 's', $cat_to_delete);

    if (!mysqli_stmt_execute($stmt))
        $_SESSION['error'] = "ERror at executing delete category ".mysqli_stmt_error($stmt) &
            redirect('../error.php');


    mysqli_stmt_bind_result($stmt, $cat_name);

    if (!mysqli_stmt_fetch($stmt)) {
        mysqli_stmt_error($stmt);
    }



    mysqli_stmt_free_result($stmt);
    mysqli_stmt_close($stmt);

admin_get_category_body.php (यहाँ mysqli)

        <?php

        if (isset($_GET['get']) && !empty($_GET['get']) )
        {
            include 'intodb/edit_category.php';
        }


        if (check_method('get') && isset($_GET['delete']) )
        {
            require 'intodb/delete_category.php';
        }


        if (check_method('get') && isset($_GET['get']) )
        {
            require 'intodb/get_category.php';
        }


        ?>

        <!--            start: cat body          -->

        <div     class="columns is-mobile is-centered is-vcentered">
            <div class="column is-half">
                <div   class="section has-background-white-ter box ">


                    <div class="has-text-centered column    " >
                        <h4 class="title is-4">Ctegories</h4>
                    </div>

                    <div class="column " >


                        <?php if (check_method('get') && isset($_GET['get'])) {?>
                        <form action="" method="post">
                            <?php } else {?>
                            <form action="intodb/add_category.php" method="post">
                                <?php } ?>

                                <label class="label" for="admin_add_category_bar">Add Category</label>
                                <div class="field is-grouped">

                                    <p class="control is-expanded">

                                        <?php if (check_method('get') && isset($_GET['get'])) {?>

                                            <input id="admin_add_category_bar" name="admin_add_category_bar_edit" class="input" type="text" placeholder="Add Your Category Here" value="<?php echo $cat_name; ?>">

                                            <?php


                                            ?>
                                        <?php } else {?>
                                            <input id="admin_add_category_bar" name="admin_add_category_bar" class="input" type="text" placeholder="Add Your Category Here">

                                        <?php } ?>
                                    </p>
                                    <p class="control">
                                        <input type="submit" name="admin_add_category_submit" class="button is-info my_fucking_hover_right_arrow" value="Add Category">
                                    </p>
                                </div>
                            </form>


                            <div class="">

                                <!--            start: body for all posts inside admin          -->


                                <table class="table is-bordered">
                                    <thead>
                                    <tr>
                                        <th><p>Category Name</p></th>
                                        <th><p>Edit</p></th>
                                        <th><p>Delete</p></th>
                                    </tr>
                                    </thead>

                                    <?php

                                    global $connection;
                                    $sql = "SELECT * FROM categories ;";

                                    $result = mysqli_query($connection, $sql);
                                    if (!$result) {
                                        echo mysqli_error($connection);
                                    }
                                    while($row = mysqli_fetch_assoc($result))
                                    {
                                        ?>
                                        <tbody>
                                        <tr>
                                            <td><p><?php echo $row['category_name']?></p></td>
                                            <td>
                                                <a href="admin_category.php?get=<?php echo $row['category_id']; ?>" class="button is-info my_fucking_hover_right_arrow" >Edit</a>

                                            </td>

                                            <td>
                                                <a href="admin_category.php?delete=<?php echo $row['category_id']; ?>" class="button is-danger my_fucking_hover_right_arrow" >Delete</a>

                                            </td>
                                        </tr>


                                        </tbody>
                                    <?php }?>
                                </table>

                                <!--           end: body for all posts inside admin             -->




                            </div>

                    </div>
                </div>


            </div>

        </div>
        </div>

कुछ ऐसा जो मेरे दिमाग को पार कर गया, मैं फिर से वैश्विक $ कनेक्शन के माध्यम से कनेक्शन चर जोड़ रहा हूं;] इसलिए मुझे लगता है कि मूल रूप से mysqli_stmt_close ($ stmt) के साथ तैयार बयान को समाप्त करने के बाद क्वेरी सिस्टम का एक नया सेट शुरू किया जा रहा है; और यह भी मैं इन फ़ाइलों और अन्य सामग्री को शामिल कर रहा हूँ


get_category.php (यहां तैयार स्टेटमेंट का उपयोग करके) pastebin.com/BiWysdYz admin_get_category_body.php (यहां mysqli) pastebin.com/Pwm30icm नोट: सीमा के कारण सभी कोड पोस्ट नहीं कर सकते
Mahad Ali

कुछ ऐसा जो मेरे दिमाग को पार कर गया, मैं फिर से वैश्विक $ कनेक्शन के माध्यम से कनेक्शन चर जोड़ रहा हूं;] इसलिए मुझे लगता है कि मूल रूप से mysqli_stmt_close ($ stmt) के साथ तैयार बयान को समाप्त करने के बाद क्वेरी सिस्टम का एक नया सेट शुरू किया जा रहा है; और यह भी मैं इन फ़ाइलों और अन्य सामान को शामिल कर रहा हूँ।
महाड अली

-1

यह एक पुराना सवाल है, लेकिन मेरे मामले में पोस्ट किए गए उत्तरों में से किसी ने भी काम नहीं किया, मैंने पाया कि मेरे मामले में मेरी संग्रहीत प्रक्रिया में एक मेज पर चयन और अपडेट थे, उसी तालिका में एक अपडेट ट्रिगर था जिसे ट्रिगर किया जा रहा था और इसे गाया जा रहा था एक अनंत लूप में प्रक्रिया। बग पाए जाने के बाद त्रुटि दूर हो गई।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.