Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP के माध्यम से MySQL संग्रहीत कार्यविधि को कॉल करने में त्रुटि

मुझे लगता है कि आपकी संग्रहीत प्रक्रिया का पहला तर्क VARCHAR है, इसलिए पहली समस्या यह है कि आप $q पास कर रहे हैं क्वेरी में उद्धरण के बिना चर। यह इस तरह होना चाहिए:

$db->multi_query("CALL mst2('$q', @eset, @leng); SELECT @eset as eset; SELECT @leng as length");

साथ ही, आपको दो सेलेक्ट कॉल करने की आवश्यकता नहीं है, इसे केवल एक बार करें:

SELECT @eset AS eset, @leng AS leng;

कहने की जरूरत नहीं है कि उपयोगकर्ता इनपुट पर कभी भी भरोसा नहीं किया जाना चाहिए। आपको तैयार बयानों का उपयोग करना चाहिए:

if (($stmt = $db->prepare("CALL mst2(?, @eset, @leng)"))) {
    $stmt->bind_param("s", $q);
    $stmt->execute();
    $stmt->close();

    if (($res = $db->query("SELECT @eset AS eset, @leng AS leng"))) {
        list($eset, $leng) = $res->fetch_array();
        $result = $eset.$length;
        echo $result;

        $res->free();
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हॉट क्या है सूची को पॉप्युलेट करने के लिए किसी अन्य तालिका में पंक्तियों द्वारा पंक्तियों को छाँटना

  2. DATE या DATETIME के ​​लिए डिफ़ॉल्ट मान सेट करते समय MySQL में त्रुटि

  3. फ्लास्क + SqlAlchemy के साथ केवल एक टेबल बनाएं

  4. 2 कार्य जो MySQL में एक तिथि से महीने का नाम लौटाते हैं

  5. MySQL परमाणु में एक क्षेत्र में वृद्धि कर रहा है?