无法在MySQL数据库中搜索记录

时间:2014-03-23 04:48:29

标签: php html mysql

让我首先道歉,如果这个错误有重复。我搜索并发现没有明确与我的情况有关,尽管提出了相同的错误消息。我是PHP的新手,我正在尝试使用HTML搜索表单来检索我的表中的记录。我的代码看起来像这样。

  <form action="" method="post">
    Search: <input type="text" name="term" /><br />
  <input type="submit" name="submit" value="Submit" />
  </form>

  <?php
  $dbhost = 'localhost';
  $dbuser = 'root';
  $dbpass = 'pass';
  $conn = mysql_connect($dbhost, $dbuser, $dbpass);

    if(! $conn ){
      die('Could not connect: ' . mysql_error());
  }

  if (!empty($_REQUEST['term'])) {

    $term = mysql_real_escape_string($_REQUEST['term']);

    $sql = "SELECT * FROM shoes WHERE name LIKE '%".$term."%'";
    $r_query = mysql_query($sql);

    while($row = mysql_fetch_array($r_query)){
      echo 'Shoe Name: ' .$row['name'];
      echo '<br /> SKU: ' .$row['sku'];
      echo '<br /> Size: ' .$row['size'];
      echo '<br /> Quantity: ' .$row['quantity'];
    }

  }
    mysql_close($conn);


  ?>

` 我收到此错误消息:mysql_fetch_array()期望参数1是资源,布尔给定

我非常感谢有关此事的任何帮助。我很难过。

2 个答案:

答案 0 :(得分:0)

如果出现错误,mysql_query函数将返回false。您可能想要添加一些错误检查,例如。

if ($r_query === false){
    echo 'Error'; 
    // maybe check mysql_error* functions
    die ();
}

答案 1 :(得分:0)

您尚未使用mysql_select_db()定义或选择数据库,也未将DB连接传递给您的查询。

<?php
  $dbhost = 'localhost';
  $dbuser = 'root';
  $dbpass = 'pass';
  $db = 'your_database'; // added. Modify to be your database
  $conn = mysql_connect($dbhost, $dbuser, $dbpass);

  mysql_select_db($db)or die(mysql_error());

    if(! $conn ){
      die('Could not connect: ' . mysql_error());
  }

    if (!empty($_REQUEST['term'])) {

    $term = mysql_real_escape_string($_REQUEST['term']);

    $sql = "SELECT * FROM shoes WHERE name LIKE '%".$term."%'";
    $r_query = mysql_query($sql,$conn); // added DB connection

    while($row = mysql_fetch_array($r_query)){
      echo 'Shoe Name: ' .$row['name'];
      echo '<br /> SKU: ' .$row['sku'];
      echo '<br /> Size: ' .$row['size'];
      echo '<br /> Quantity: ' .$row['quantity'];
    }

  }
    mysql_close($conn);
?>

从PHP.net引用

http://www.php.net/mysql_query

返回值

对于返回结果集的SELECT,SHOW,DESCRIBE,EXPLAIN和其他语句,mysql_query()在成功时返回资源,如果出错则返回FALSE。

对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE。


http://php.net/manual/en/language.types.resource.php

<强>资源

资源是一个特殊变量,包含对外部资源的引用。资源由特殊功能创建和使用。


<强>脚注:

mysql_*函数弃用通知:

http://www.php.net/manual/en/intro.mysql.php

从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqliPDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。