2012-01-02 14 views
5

लौटा रहा है मैं MySQLi का उपयोग कर अपने डेटाबेस पर एकाधिक प्रश्न चलाने की कोशिश कर रहा हूं। यह मेरा कोड है:MySQLi तैयार कथन को झूठी

Fatal error: Call to a member function bind_param() on a non-object in C:\wamp\www\ajax\login.php on line 42 

मैं जाँच की है कि डेटाबेस फ़ील्ड मौजूद हैं, इसलिए यह नहीं है कि:

$stmt = $mysqli->prepare('SELECT password FROM `users` WHERE username=? LIMIT 1'); 
$stmt->bind_param('s', $username); 
$stmt->execute(); 
$stmt->bind_result($hashedPass); 
$stmt->fetch(); 

/* Check the passwords match */ 
$pwdHasher = new PasswordHash(8, FALSE); 
if(!$pwdHasher->CheckPassword($password, $hashedPass)) 
    exit; 

$stmt = $mysqli->prepare('SELECT u_id FROM `users` WHERE username=? LIMIT 1'); 
$stmt->bind_param('s', $username); 
$stmt->execute(); 
$stmt->bind_result($u_id); 
$stmt->fetch(); 

लेकिन जब कोड मैं इस त्रुटि मिलती है चलाया जाता है। पहली क्वेरी काम करती है, यह ऐसा दूसरा प्रतीत होता है जो नहीं करता है। मैंने phpMyAdmin में अपनी क्वेरी को चलाया है और सफलतापूर्वक परिणाम सेट तैयार करता है, इसलिए मुझे नहीं पता कि क्या गलत है।

+0

जो 'bind_param()' कॉल है? पासवर्ड के लिए पहला या 'user_id' फ़ील्ड के लिए दूसरा वाला? और आप केवल एक प्रश्न का उपयोग क्यों नहीं करते? – Progman

उत्तर

8

prepare त्रुटि होने पर झूठी रिटर्न होती है।

$stmt = $mysqli->prepare('SELECT u_id FROM `users` WHERE username=? LIMIT 1'); 
if ($stmt === FALSE) { 
    die ("Mysql Error: " . $mysqli->error); 
} 

और कुछ mysql त्रुटि प्रदर्शित की जानी चाहिए।

संबंधित मुद्दे