Tuesday, 15 July 2014

php - How to use/write mysql_real_escape_string in PDO? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 3 जवाब

    मेरे कोड में मैं कोशिश कर रहा हूँ एक पीडीओ वक्तव्य में mysql_real_escape_string अनुवाद करें। क्या पीडीओ में mysql_real_escape_string लिखने के लिए किसी पर कोई टिप है?

    I mysql_real_escape_string का उपयोग दो पंक्तियों में: $ userName = mysql_real_escape_string ($ _ POST ['उपयोगकर्ता नाम']); $ Password = sha1 (mysql_real_escape_string ($ _ POST ['पासवर्ड']));

      & lt;? Php ob_start (); session_start (); शामिल ( "../ डेटाबेस / db.php"); $ UserName = mysql_real_escape_string ($ _ POST ['उपयोगकर्ता नाम']); $ Password = sha1 (mysql_real_escape_string ($ _ POST ['पासवर्ड'])); गूंज "& lt; br & gt; उपयोगकर्ता:" $ UserName; गूंज "& lt; br & gt; pw:"। $ पासवर्ड; $ Query = "tbladmin से * चुनें * जहां admin_usr_name = '$ userName' और admin_pwd = '$ password'"; $ Res = mysql_query ($ क्वेरी); // $ पंक्तियाँ = $ res- & gt; प्राप्त करें (पीडीओ :: FETCH_ASSOC); $ पंक्तियां = mysql_fetch_assoc ($ res); गूंज "& lt; br & gt; numrows" Mysql_num_rows ($ res) "& Lt; br & gt;"; // $ find = $ query- & gt; तैयार करें ("tbladmin से * चुनें, जहां admin_usr_name = '$ userName' और admin_pwd = '$ password'"); // $ खोज- & gt; निष्पादित करें (); // if ($ find- & gt; fetchColumn () & gt; 0) // {// प्रतिध्वनि 'आपने इसे बनाया, स्वागत'; // $ _SESSION ['उपयोगकर्ता नाम'] = $ पंक्तियां ['admin_usr_name']; // $ _SESSION ['admin_id'] = $ पंक्तियाँ ['admin_id']; // हेडर ("स्थान: ../pages/content.php"); //} // else // {// प्रतिध्वनि 'उपयोगकर्ता नाम और पासवर्ड मैच न करें & lt; br / & gt; पुनः प्रयास करें'; // हेडर ("स्थान: ../index.php?loginerror=yes"); //} यदि (mysql_num_rows ($ res) & gt; 0) {$ _SESSION ['उपयोगकर्ता नाम'] = $ पंक्तियां ['admin_usr_name']; $ _SESSION ['admin_id'] = $ पंक्तियां ['admin_id']; हैडर ("स्थान: ../pages/content.php"); } Else {गूंज 'उपयोगकर्ता नाम और पासवर्ड मैच न करें & lt; br / & gt; पुनः प्रयास करें'; शीर्षलेख ("स्थान: ../index.php?loginerror=yes"); }   

    ? & Gt;

    यह है कि मैं पीडीओ के साथ क्या करने की कोशिश कर रहा हूं

      $ host = "localhost"; $ User = "root"; $ Password = "root"; $ Db = "ब्लॉग"; $ Dsn = "mysql: मेजबान = $ होस्ट; dbname = $ db; वर्णसेट = यूटीएफ 8"; $ Opt = सरणी (PDO :: ATTR_ERRMODE = & gt; PDO :: ERRMODE_EXCEPTION, PDO :: ATTR_DEFAULT_FETCH_MODE = & gt; PDO :: FETCH_ASSOC); $ Pdo = नया पीडीओ ($ डीएसएन, $ उपयोगकर्ता, $ पासवर्ड, $ ऑप्ट); $ Username = $ _POST ['उपयोगकर्ता नाम']; $ पासवर्ड = $ _POST ['पासवर्ड']; $ Query = "tbladmin से चुनें * जहां admin_usr_name =: userName और admin_pwd =: passWord"; {$ Databas = नया पीडीओ ($ डीएसएन, $ उपयोगकर्ता, $ पासवर्ड) का प्रयास करें; } पकड़ (PDOException $ e) {गूंज 'कनेक्शन विफल:'। $ ई & gt; getMessage (); } $ स्टेटमेंट = $ डेटाबेस- & gt; तैयार ($ क्वेरी); $ स्टेटमेंट- & gt; निष्पादित करें (ऐरे (': उपयोगकर्ता नाम' = & gt; $ उपयोगकर्ता नाम, ': पासवर्ड' = & gt; $ पासवर्ड)); $ पंक्ति = $ कथन- & gt; प्राप्त करें ();   

    मुझे हमेशा यह त्रुटि मिलती है: कोई सदस्य फ़ंक्शन तैयार करें () गैर-ऑब्जेक्ट पर

    बिंदु तैयार किए गए बयानों का उपयोग करके पैरामीटरयुक्त क्वेरीज़ और बाध्य मानों के साथ आपको mysql_real_escape_string जैसी चीज़ों की ज़रूरत नहीं है।

    बद्ध मूल्यों और पैरामीटरयुक्त प्रश्नों / तैयार बयान का उपयोग कैसे करें।

    मुद्दा यह है कि आप एक एसक्यूएल क्वेरी लिखेंगे:

      $ query = $ pdo- & gt; तैयार करें ("चुनें उपयोगकर्ता से कहां उपयोगकर्ता नाम = और पासवर्ड =?");   

    तब आप के स्थान पर बाध्य मूल्यों में गुजरेंगे? प्रतीकों, इस प्रकार प्रश्न केवल कभी भी सचमुच के रूप में चलाया जाता है:

      $ query- & gt; बाईंदपरम (1, $ उपयोगकर्ता नाम); $ Query- & gt; बाइंड पैरा (2, $ पासवर्ड);   

    किसी भी प्रकार की एसक्यूएल इंजेक्शन प्रयास जैसे कि 1 '; उपयोगकर्ताओं को ड्रॉप - ऊपर दिए गए चर के अंदर अब काम नहीं करेगा क्योंकि इसे शाब्दिक कहा जाएगा

No comments:

Post a Comment