我正在尝试根据搜索显示来自数据库的字段
搜索条件将位于地址栏中(例如,如果用户搜索茶,则为/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行
答案 0 :(得分:1)
首先,请注意sql注入。您正在将$ _GET数组中的变量直接插入到查询中。
关于错误,看起来$ name包含不支持的字符,如空格,或者product表可能不存在。
您可以将表名放在“`”字符之间,为了查看错误,您可以通过此更改行:
$result=mysql_query("SELECT * FROM products WHERE `$name` LIKE '$prodname%' ")or die('Error: Line 519 ('.mysql_error().')' );