2012-10-25 145 views
0

我遇到MySQL查詢問題。我的數據庫結構是這樣的:MySQL查詢在搜索字符串時找不到結果

id (PRIMARY_KEY, AUTO_INCREMENT) 

deviceID (TEXT) 

name (TEXT) 

latidude (TEXT) 

longitude (TEXT) 

現在,這是第一個條目看起來像(像上面的順序排列):

1 fc29daf8-bc53-4235-a1df-7d54b4e67b4c username 46.993393 5.448076 

我在數據庫中搜索與此查詢:

$result = mysql_query("SELECT name FROM position WHERE deviceID = '$deviceID'"); 

但它沒有找到條目。 deviceID從$ _GET獲得,並且與數據庫中的完全相同。我還通過使用回聲打印它來檢查它是否正確。

它發送到PHP文件中像這樣:

read_uniqueid.php?deviceID=fc29daf8-bc53-4235-a1df-7d54b4e67b4c 

,並從PHP文件這樣寫的:從上面的查詢發送

$deviceID = $_GET['deviceID']; 
echo $deviceID.'<br>'; 

這些行之後。

有一個到數據庫的工作連接。我只在查詢中遇到一個問題,如果我搜索它的名字,那麼我得到所有其他條目。

這個查詢工作,並給了我所有條目:

$result = mysql_query("SELECT * FROM position WHERE name = '$name'"); 
+0

當你這樣做時,你會得到什麼? :** $ result = mysql_query(「SELECT name FROM position WHERE deviceID ='fc29daf8-bc53-4235-a1df-7d54b4e67b4c'」); ** 試着運行這個「** SELECT name FROM position WHERE deviceID ='fc29daf8 -bc53-4235-a1df-7d54b4e67b4c'**「在MySQL數據庫中,看看你是否得到任何東西... – Ofear

+2

請看看數據庫安全性,將用戶參數傳遞給數據庫並不是一件聰明的事情 – Geert

回答

0

嘗試像,

$result = mysql_query("SELECT name FROM position WHERE deviceID like '%$deviceID%'"); 

列設備ID可能有空間之前或在值後。

+0

是的作品謝謝:) – alexj

+2

@ user1770465改爲修復空格。更安全的長期戰略 – 2012-10-25 09:23:27

+0

'insert('deviceID)''insert'' – Reflective

相關問題