2013-06-30 91 views
0

我想使用這個腳本來看看是否有一個用我的數據庫中註冊,但我在第6行麻煩我不斷收到錯誤:PHP綁定錯誤

Fatal error: Call to a member function bind_param() on a non-object in -redacted-/check_login.php on line 6

我m難以理解爲什麼它失敗了,因爲我對創建用戶函數有類似的說法。

<?php 
ini_set('display_errors', 'On'); 
$db = new mysqli("localhost", "root", "-redacted-", "-redacted-"); 

$query = $db->prepare("SELECT user FROM users WHERE username = ? AND password = ?"); 
$query->bind_param('ss', $_POST['username'], md5($_POST['password'])); 
$query->execute(); 
$query->bind_result($result); 
$query->fetch(); 

if($result->num_rows == 1) { 
    session_start(); 
    $_SESSION['user'] = $_POST['username']; 
    header("Location: 10.0.0.15/index.php"); 
} 
?> 
+0

內沒有語法錯誤,這意味着' prepare()'出錯了,返回了'false'而不是'mysqli_stmt'對象。你需要檢查錯誤。 – Barmar

+0

我希望你的$查詢失敗 - 檢查數據庫的返回值,看看它運行時發生了什麼。 – andrewsi

回答

1

這通常是由於在數據庫模式中引用了一個不存在的列/表引起的。因此,爲什麼prepared是此錯誤的根源。

你應該做的是檢查你的查詢。確保您有:

  1. 沒有使用reserved MySQL的關鍵字
  2. 引用列/表是 存在的架構內
  3. 有你的SQL 查詢
+0

解決了這個問題,我會盡快接受堆棧讓我... – Jacobm001

+0

我認爲這不是一個不存在的參考,它是使用保留字'用戶'? –

+0

正確。它只是認爲它會對它適應。我換了名字,它開始工作完美。 – Jacobm001