2012-10-25 91 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

相关问题