从搜索中显示来自MySQL DB的字段

时间:2013-08-14 15:22:25

标签: php html mysql database search

我正在尝试根据搜索显示来自数据库的字段

搜索条件将位于地址栏中(例如,如果用户搜索茶,则为/search_results.php?q=tea)

这是我的代码:

    <?php
$name=$_GET["q"];
if ($name<="0"){echo( "You did not enter a search");  
 }
 else
 {
$con = mysql_connect("localhost","cl49-XXX","XXX");
if (!$con) 
  {
   die('Could not connect: line 513 ' . mysql_error());
   }
mysql_select_db("cl49-XXX", $con)or die( "Unable to select database");

$result=mysql_query("SELECT * FROM products WHERE $name LIKE '$prodname%' ")or die('Error: Line 519' );
$row = mysql_fetch_array($result);
$prodID=$row['prodID'];
$prodname=$row['prodname'];
$catagory=$row['catagory'];
}

echo"   $prodID , $prodname, $catagory ";        
?>  

运行代码时我得到了

  

错误:第519行

1 个答案:

答案 0 :(得分:1)

首先,请注意sql注入。您正在将$ _GET数组中的变量直接插入到查询中。

关于错误,看起来$ name包含不支持的字符,如空格,或者product表可能不存在。

您可以将表名放在“`”字符之间,为了查看错误,您可以通过此更改行:

$result=mysql_query("SELECT * FROM products WHERE `$name` LIKE '$prodname%' ")or die('Error: Line 519 ('.mysql_error().')' );