why this mysql query doesnt work from php -


पंजीकरण प्रक्रिया से पीएचपी कोड:

  $ query = "` उपयोगकर्ता `में शामिल करें 'ईमेल', `पासवर्ड`,` रोल`, `टाइम_ पंजीयन`) मूल्य ('"। Mysqli_real_escape_string ($ con, trim ($ _ सत्र [' reg '] [' 'ईमेल' '))। "', '"। ('SHA512', ट्रिम ($ _ POST ['पासवर्ड'])। "'', '"। Mysqli_real_escape_string ($ con, trim ($ _ सत्र [' रोला '])) "', अब ())"; यदि (! Mysqli_query ($ con, $ query)) {त्रुटि ("....."); } Else {  

ये सब अच्छा है पहली क्वेरी निष्पादित होती है और डेटा तालिका "उपयोगकर्ताओं" में संग्रहीत होता है लेकिन यहां समस्या आती है। अगली पीएचपी कोड नई आईएसएसएल क्वेरी उत्पन्न करता है, जिसे कभी निष्पादित नहीं किया जाता है। लेकिन जब मैं इसे PHPmyAdmin पर कॉपी करता हूं, तो यह काम करता है ...

  $ last_id = $ con- & gt; insert_id; $ क्वेरी = ''; विदेशी मुद्रा ($ _ सत्र ['reg'] $ कुंजी के रूप में = & gt; $ मान) {यदि ($ value! = '') {$ Query। = "उपयोगकर्ता_दिश्ले में डाल दें (id_user, id_item, value) VALUES ('।' $ Last_id। '', (SELECT id_item FROM profil_items WHERE नाम = '"$ कुंजी।"'), '".mysqli_real_escape_string ($ con $ $ value)" ";);"; }} यदि (! Mysqli_query ($ con, $ query)) {echo $ query; } और {हेडर ('स्थान: ... कहीं ... ....'); }}   

Mysqli त्रुटि संदेश: "आपके एसक्यूएल वाक्यविन्यास में एक त्रुटि है; मैनुअल जो सही मायने में वाक्यविन्यास के लिए आपके MySQL सर्वर संस्करण से मेल खाता है, के पास 'INSERT user_detail (id_user , id_item, value) VALUES ('14', (SELECT id_po '1 लाइन में।')

मैं समझ नहीं पा रहा हूं। अगर वाक्यविन्यास में कोई त्रुटि है, तो PHPmyAdmin में त्रुटियों के बिना कैसे निष्पादित किया जा सकता है? mysqli_multi_query () का उपयोग करने की कोई आदत नहीं शुरू करने का कोई कारण नहीं है

आपको या तो प्रत्येक INSERT व्यक्तिगत रूप से निष्पादित करनी चाहिए, mysqli_query () के अंदर foreach loop के अंदर।

या फिर कई पंक्तियों को एक बहु-पंक्ति INSERT कथन में जोड़ दें और लूप के बाद इसे निष्पादित करें।


इस मामले में, नहीं (हालांकि आपको के बजाय बाध्य पैरामीटर का उपयोग करना चाहिए mysqli_real_escape_string () ), लेकिन मुझे लगता है कि एक बार आप mysqli_multi_query () का उपयोग करना शुरू कर सकते हैं इसे किसी अन्य जगह से असुरक्षित तरीके से उपयोग करें इसे कभी भी इसका उपयोग करने के लिए बेहतर नहीं।

आप बहु-पंक्ति सिंटैक्स का उपयोग करके एक एकल INSERT निष्पादित कर सकते हैं। लेकिन मैं कई बयानों को निष्पादित करने की अधिकता के बारे में चिंता नहीं करूँगा, जब तक आप ऐसा उच्च मात्रा में नहीं कर रहे हैं, आप एक महत्वपूर्ण प्रदर्शन समस्या को माप सकते हैं। माइक्रो-ऑप्टिमाइज़ेशन के बारे में चिंता न करें।

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -