2011-07-14 80 views
1

當我開始我的腳本這個錯誤:PHP bind_param錯誤

Fatal error: Call to a member function bind_param() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/Jil/login_skript.php on line 16

下面是腳本:

$sql = "SELECT ID, vorname, nachname, username, email, passwort, profilBild, geschlecht, alter, wohnort, ueberSich FROM benutzer WHERE username LIKE '?' LIMIT 1;"; 
$stmt = $db->prepare($sql); 
$stmt->bind_param("s", $username); 

回答

2

看到問題是'alter'是一個MySQL關鍵字。用反引號括起所有的字段名稱(或至少只是'更改')來解決這個問題。

此外,不要在準備好的聲明中引用'?'的引號。他們將爲你添加。

$sql = "SELECT `ID`, `vorname`, `nachname`, `username`, `email`, `passwort`, `profilBild`, `geschlecht`, `alter`, `wohnort`, `ueberSich` FROM `benutzer` WHERE `username` LIKE ? LIMIT 1;"; 
$stmt = $db->prepare($sql); 
$stmt->bind_param("s", $username); 
+0

謝謝你是對的:) –

+0

不客氣。 –

1

這是因爲你的SELECT語句無效,準備返回null。您不需要圍繞?'。可能還有其他錯誤,以及您可以通過調用$db->error

+0

仍然有同樣的錯誤 –

+0

添加這個準備語句後:(!$語句) – Rodaine

+0

'如果回聲DB- $>錯誤;',看看它說。 – Rodaine