2011-08-14 61 views
0

你好,我的代碼不會給出任何錯誤,但不是在db中的名稱結果? 下面的代碼是用於處理用戶輸入到php文件的數據的表單。 HTML用戶輸入代碼:數據庫查詢給出沒有錯誤或者沒有結果?

<html> 
<head> 
</head> 
<body> 
<form action="search.php"> 
<input type="text" name="search"> 
<input type="submit"> 

</body> 
</html> 

PHP代碼:

 <?php 
$db = new mysqli("localhost","root","","acksocial"); 

if(mysqli_connect_error()) 
{ 
printf("Connection failed:%s \n",mysqli_connect_error()); 
exit(); 
} 

$name = mysqli_real_escape_string($db, $_POST['search']); 
$table = 'acksearch'; 

if($result = $db->query("SELECT * FROM $table WHERE name = $name", MYSQLI_ASSOC)) 
{ 
while($row = $result->fetcssh_object()) 
    { 

// $row is an associative array 

// Do something here 

echo "Name: ".$row['name']; 

echo " country: ".$row['country']; 

} 
} 
$db->close(); 

?> 

回答

1

mysqli_real_escape_string脫線,但不引用它,所以你的查詢有語法錯誤。

將其替換爲:

"... WHERE name = '$name'"... 

請檢查和報告(或日誌,或其他)錯誤使用數據庫函數時。

+0

另外MySQLi不會像MySql一樣產生錯誤。如果你想看到你需要抓住它們的錯誤。請參閱mysqli_error mysqli_errno。 – transilvlad

相關問題