我正在第一次尝试搜索引擎: 我有一个名为“global”的数据库和一个名为“mpl”的表,其中包含 11 列(命名为:客户、零件编号、说明、原产地和其他几个列),其中有多行零件。 我的目的是使用下面的代码 - 获取用户在搜索字段中输入的零件号的描述和原产地。
表格:
<form action="search.php" method="post">
<input type="text" name="find" /><br />
<input type="submit" value="Search" /> </form>
还有 PHP:
$host = "localhost";
$dbuser = "root";
$dbpass = " ";
$db = "global";
$con = mysql_connect($host, $dbuser, $dbpass);
if(!$con){ die(mysql_error());
}
$select = mysql_select_db($db, $con);
if(!$select){ die(mysql_error());
}
$item = $_REQUEST['find'];
$data = mysql_query("SELECT * FROM mpl WHERE 'Part No' ='".$item."'");
while($row = mysql_fetch_array($data)){
echo $row['Description']. "<br>";
echo $row['Country Of Origin']. "<br><p>";
}
?>
有人可以告诉我我做错了什么吗?一旦我在“查找”表单中输入任何内容,我就得不到任何结果。如果我使用 LIKE 而不是没有值的“=”运行搜索 - 它会显示一堆描述和原产国 - 这意味着我已正确连接到我的数据库。这让我发疯。我觉得我不知何故弄乱了 mysql_query() 部分 - 但我不知道是哪一部分。
最佳答案
您使用了错误的字符来转义查询中的零件号列名称。用反引号 (`) 转义它们应该没问题。
$data = mysql_query("SELECT * FROM mpl WHERE `Part No` ='".$item."'");
此外,您应该验证用户的查询以防止 SQL 注入(inject)。
关于php - 初级 MySQL 数据库搜索 - 没有得到结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14547610/