2017-09-27 47 views
0

我越來越空白obj儘管searchelement存在於database中,儘管搜索元素存在於數據庫pdo中

這裏就是我想要

$userInput = 'john'; 
    $db = getDB(); 
    $sql = "SELECT user_id, email, token FROM users WHERE name LIKE name=:input";   
    $stmt = $db->prepare($sql); 
    $stmt->bindParam("input", $userInput,PDO::PARAM_STR); 
    $stmt->execute(); 
    $usernameDetails = $stmt->fetch(PDO::FETCH_OBJ); 

    print_r($usernameDetails); 

我沒有得到任何形式的error

請幫我在此先感謝!

+1

所以,你需要'LIKE'還是需要'='? –

+0

我決定我想'LIKE' – EaB

+0

然後刪除'='。你知道正確的'LIKE'格式,不​​是嗎? –

回答

1

你有錯誤的語法爲LIKE運營商

name LIKE name=:input"; 

你需要改變這

$query = $db->prepare('SELECT user_id, email, token FROM users WHERE name LIKE :input'); 
$query->bindParam("input", "%$userInput%", PDO::PARAM_STR); 

注:%指任何字符。

+0

雅ravi我現在得到的結果,我試過@moulder的答案,但得到一些'錯誤' – EaB

+0

我有一個疑問做這個查詢會獲取多個結果?現在我得到單一結果。你能告訴我如何「獲取」多個結果嗎? – EaB

+0

@EaB你是什麼意思的多重結果。這取決於數據,如果你有數據,那麼你會得到他們在結果集 – Ravi

1

在查詢中使用一個奇怪的做法:

WHERE name LIKE name=:input 

name像什麼?

你要麼使用

SELECT user_id, email, token FROM users WHERE name=:input 

SELECT user_id, email, token FROM users WHERE name LIKE :input 

LIKE我想你需要添加%情況下,否則LIKE成爲=

// previous code here 
$stmt = $db->prepare($sql); 
$stmt->bindParam("input", '%' . $userInput . '%' ,PDO::PARAM_STR); 
// more code here