php - 初级 MySQL 数据库搜索 - 没有得到结果

标签 php mysql

我正在第一次尝试搜索引擎: 我有一个名为“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/

相关文章:

php - 使用 PHP 变量作为表单字段的默认值

php - apache/php 创建文件,但同一页面不允许编辑文件

php - 使用 SQL 查询获取列名

mysql - 优化大型 MySQL 表 - 分区?

MySQL复制使用unix_timestamp作为时间戳类型

php - 不使用驼峰命名法命名 PHPUnit 测试方法会有什么后果?

php - YouTube 数据 API : authenticate as a resource owner

php - Codeigniter mysql无法在docker中连接

android - 在 Android 中的 Mysql 服务器上上传图像 我的代码出现错误 我正在使用 Volly?

php - 检查当前日期是否在两个日期之间+ mysql select查询