2017-05-08 78 views
0

我使用js獲取用戶「名稱」並將其通過ajax發送給result.php。在從ajax獲取值之後選擇數據庫時出錯

在result.php

$name = $_POST['name'] //name contain string 

// Then I want to select information from that user "name" 
$result2 = $db->query('SELECT story FROM `user_story` WHERE name='.$name) or error('failed', __FILE__, __LINE__, $db->error()); 

但爲什麼沒有工作

有人可以向我解釋這一點,並提供一個解決方案?

在此先感謝

+2

如果您想進行錯誤檢查/實際讀取的錯誤,你可能會得到一個語法錯誤。字符串需要引用。使用帶有參數綁定的預準備語句,因此您不必擔心引用問題。 – aynber

+0

是的,錯誤與我上面寫的處理錯誤條件(失敗)的代碼相同。你能舉個例子嗎? –

+0

你以前有mysqli標記,所以我建議[從這裏開始](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。 – aynber

回答

2

引號試試這個:

//ADDED semicolon 
$name = $_POST['name']; //name contain string 
// Then I want to select information from that user "name" 
$result2 = $db->query('SELECT story FROM `user_story` WHERE name= "'.$name . '"') or error('failed', __FILE__, __LINE__, $db->error()); 

注: 最好的辦法是使用PDO預處理語句。

$name = $_POST['name']; 

$result2 = $db->prepare("SELECT story FROM user_story WHERE (name = ?)"); 

$result2->execute(array($name)); 

PDOPrepared statements

相關問題