2013-02-12 45 views
-1

我想使用一個SELECT LIKE作爲字符串,從表中獲取一些數據。但由於某些原因,以下代碼無法正常工作。任何線索爲什麼?我使用HeidiSQl和PHP 5.3。SQL/PHP語法不工作

if(isset($_GET["name"])){ 
             $id=$_GET["name"]; 
             $result = mysql_query("SELECT * FROM categorii_menu WHERE name like'$id%'"); 
             $data=mysql_fetch_row($result); 
             echo $data[6]; //content of $id 
         } 
+6

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-02-12 12:45:48

+0

迴應您的查詢,看看您執行的查詢是否是您期望的查詢。 – jeroenvisser101 2013-02-12 12:46:38

+2

什麼不起作用?你有錯誤嗎?哪一個?或不是預期的行爲?哪一個? – 2013-02-12 12:47:52

回答

1

試試這個:

$result = mysql_query("SELECT * FROM categorii_menu WHERE name like '".mysql_real_escape_string($id)."%'"); 

注:

您的查詢很容易受到SQL注入

mysql_ *功能已被棄用使用mysqli_ *或PDO

+0

如果我使用新的msqli_ *標準,我沒有使用myreal_escape-string,stripslashes和其他函數來防止mysql注入? – Johny 2013-02-12 13:04:59

+0

@Johny:您可以使用準備好的語句 – 2013-02-12 13:07:16

0

發現問題,這與t相關o我的htaccess文件。我最初發布的語法很好。