-1

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

搜索条件将在地址栏中(例如 /search_results.php?q=tea 如果用户搜索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 行

4

1 回答 1

1

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

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

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

$result=mysql_query("SELECT * FROM products WHERE `$name` LIKE '$prodname%' ")or die('Error: Line 519 ('.mysql_error().')' );
于 2013-08-14T15:41:54.340 回答