2014-01-08 66 views
0

我對execute()有一個問題:致命錯誤:調用一個非對象的成員函數execute() 我似乎有正確使用它,我在StackOverflow上查找了其他問題,我認爲它是正確的。致命錯誤:調用一個非對象的成員函數execute()

$db = dbConnect(); 
    $query = "SELECT * FROM 'users' WHERE 'username' = '".$username."'"; 
    $stmt = $db->prepare($query); 
    $stmt->execute(); 

當數據庫連接()的功能是:

function dbConnect() { 
     $db = mysqli_connect("localhost", "root", "example", "dbexample") 
      or die("Errore nella connessione al db: " . mysqli_connect_error()); 
     return $db; 
    } 

感謝

+0

反引號(')沒有引號(')爲表和列名:報價是字符串常量 –

+0

參見[當使用單引號,雙引號,反引號(HTTP://計算器.com/questions/11321491/when-to-use-single-quotes-double-quotes-and-backticks)由於您使用的是MySQLi,因此您需要使用佔位符「?」綁定'$ username',而不是連接它如果您沒有獲得準備好的聲明的安全利益,那麼您就沒有這個權利。 –

+3

但如果你正在準備報表.....使用綁定變量 –

回答

0

請使用這樣的:

$query = "SELECT * FROM `users` WHERE 'username' = '".$username."'"; 

代替:

$query = "SELECT * FROM 'users' WHERE 'username' = '".$username."'"; 
0

試試這個

<?php 
$db = mysqli_connect("localhost", "root", "example", "dbexample") 
      or die("Errore nella connessione al db: " . mysqli_connect_error()); 
     $stmt = $db->prepare("SELECT * FROM users where username =".$username); 
     $stmt->execute(); 
?> 
+0

這是一樣的,不起作用.. – user245679

+0

@ user245679你可以試試這個 – railsbox

+0

感謝您的建議,但不要這樣。 – user245679

相關問題