दिलचस्प पोस्ट
एनएमएम स्थापित करने के लिए –save विकल्प क्या है? रूबी के सेटर्स को कक्षा में "आत्म" योग्यता की आवश्यकता क्यों है? ओरेकल एसक्यूएल पीवॉट क्वेरी स्पार्क में डेटाफ्रेम के लिए आरडीड ऑब्जेक्ट कैसे परिवर्तित करें हमेशा दो दशमलव स्थानों को प्रदर्शित करने के लिए फ़ॉर्मेट संख्या आप आर में "<< -" (स्क्रॉपिंग असाइनमेंट) का उपयोग कैसे करते हैं? EF4 POCO ऑब्जेक्ट्स के बदलावों को सहेजते समय संबंधों को अपडेट करें जीसीसी के साथ सी / सी ++: स्थायी रूप से संसाधन फ़ाइलों को निष्पादन योग्य / लाइब्रेरी में जोड़ें एक स्लॉट के लिए एक तर्क उत्तीर्ण C # char से int एंड्रॉइड में ड्रॉएबल के रंग कैसे बदलेंगे? कंसोल ऐप में सी # में async? एंड्रॉइड नापसंद अपाचे मॉड्यूल (एचटीटीपी क्लाइंट, एचटीटीपीआरपीएस, आदि) जावास्क्रिप्ट के साथ ब्राउज़र व्यूपोर्ट आयाम प्राप्त करें कैसे प्रोग्राम करने के लिए iPhone म्यूट स्विच समझ?

पीडीओ – एक सदस्य समारोह में कॉल तैयार करें () गैर-ऑब्जेक्ट पर

इस कोड को एक त्रुटि मिलती है:

घातक त्रुटि: किसी सदस्य फ़ंक्शन को कॉल करें () को C: \ Users \ fel \ VertrigoServ \ www \ login \ validation.php पर किसी ऑब्जेक्ट पर लाइन 42 पर तैयार करें

कोड:

function repetirDados($email) { if(!empty($_POST['email'])) { $query = "SELECT email FROM users WHERE email = ?"; $stmt = $pdo->prepare($query); // error line: line 42 $email = mysql_real_escape_string($_POST['email']); $stmt->bindValue(1, $email); $ok = $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($results == 0) { return true; } else { echo '<h1>something</h1>'; return false; } } } 

संभव कारण क्या है? एक अन्य सवाल , mysql_num_rows के बराबर क्या है? क्षमा करें, मैं पीडो के साथ नौसिखिया हूँ

वेब के समाधान से एकत्रित समाधान "पीडीओ – एक सदस्य समारोह में कॉल तैयार करें () गैर-ऑब्जेक्ट पर"

$pdo अपरिभाषित है आप इसे समारोह के अंदर घोषित नहीं कर रहे हैं, और यह तर्क के रूप में पारित नहीं किया जा रहा है।

आपको इसे (अच्छा) में पारित करना होगा, या इसे वैश्विक नाम स्थान में परिभाषित करना होगा और इसे शीर्ष पर ( global $pdo डालकर अपने फ़ंक्शन पर उपलब्ध कराना होगा।

आप उसी php पृष्ठ में डेटाबेस कनेक्शन का एक फ़ंक्शन बना सकते हैं और उस फ़ंक्शन को कॉल कर सकते हैं जब भी आप चाहें। जैसा,

 public function connection() { $dbc = new PDO("mysql:host=localhost;dbname=chat","root",""); } public function1() { this->connection(); // now you have the connection.. now, time for to do some query.. } public function2() { this->connection(); // now do query stuffs.. } 

या बस आप उस पेज में जब भी इसकी ज़रूरत होती है तो उस पृष्ठ में डेटाबेस कनेक्शन पंक्ति बस लिख सकते हैं जैसा,

 public function a() { // connecting DB for this function a only... $dbc = new PDO("mysql:host=localhost;dbname=chat","root",""); // bla bla bla... } public function b() { // connecting DB for this function b only... $dbc = new PDO("mysql:host=localhost;dbname=chat","root",""); // abra ke dabra... boom } 

$pdo ऑब्जेक्ट आपके फ़ंक्शन के अंतर्गत दायरे में नहीं है।

पीडीओ में mysql_num_rows के समतुल्य के संबंध में मूल रूप से FETCH_NUM यह चयनित पंक्ति के सूचकांक संख्या को वापस करता है

@ एएनवीडी मेरे पास एक ही समस्या थी, लेकिन मैंने इसे उसी पृष्ठ में डेटाबेस से जोड़कर हल किया, न कि सहसंबंध पृष्ठ को शामिल करने के लिए। यह मेरे लिए काम किया

 <?php try { $pdo = new PDO('mysql:host=localhost;dbname=tish_database;charset=utf-8','root',''); } catch(PDOException $e){ echo 'Connection failed'.$e->getMessage(); } ?> 

मुझे वही त्रुटि मिल रही थी: तब मैंने देखा कि मैंने पीडीओ कनेक्शन बंद करने के बाद मैंने अपनी कक्षा को बुलाया।

हां, मैंने यह भी कठिन तरीके से सीखा, आपको फ़ंक्शन के अंदर डीबी कनेक्शन खोलने की आवश्यकता है। मैंने डीबी को कनेक्शन ग्रहण किया था कि फ़ंक्शन के अंदर खोला जाएगा, अगर मैं समारोह को कॉल करने से पहले खोला, लेकिन नहीं। इसलिए:

 function whatever(){ //OPEN DB CONNECTION CODE //CLOSE DB return whateverValue; } 

आप सक्रिय, अनबॉर्फ़ किए गए प्रश्नों से भी इस त्रुटि को सक्रिय कर सकते हैं।

इसलिए, लाइन 41 पर,

 $stmt = null; 

इस कोड की कोशिश करो

 $query =$pdo->prepare("SELECT email FROM users WHERE email = ?"); $email = mysql_real_escape_string($_POST['email']); $stmt->bindValue(1, $email); $ok = $stmt->execute(); $results = $query->fetchAll(PDO::FETCH_ASSOC); if ($results == 0) { return true; } else { echo '<h1>something</h1>'; return false; }