如何使用数组从数据库中获取数据

时间:2015-10-31 11:50:27

标签: php mysql

我正在尝试从数据库中获取数据,但不会检索特定ID的数据。 这是我的一页: 的 example1.php

  <a style="color: #3498DB;" class="btn btn-default" href="http://www.example.com/getafreequote?id=<?php echo $row['product_id'];  ?>">Get Quote</a>

example2.php

 <?php 
   $id = isset($_GET['id'])?$_GET['id']:'';

        $query = "SELECT * FROM oc_product_description WHERE product_id=$id";
        $run1 = mysql_query($query);
         while ($fetch1 = mysql_fetch_object($run1)){


   ?>

    <div class="col-xs-12 col-sm-6">
     <label for="GetListed_product"></label>
                <input class="le-input" name="product" id="GetListed_product" type="text"  value="<?php 
                    $b = $fetch1->product_id;

                            $q2 ="SELECT product_id,name FROM oc_product_description WHERE product_id = $b";
                            $q3 = mysql_fetch_assoc(mysql_query($q2));
                         echo $q3['name'];

                ?>" >
    <span id="productmsg" class="msg"></span>
    </div>
<?php
                  }
                  ?>

</div>

但未获得特定产品ID的数据。我有像这样的错误显示

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in example.com/example2.php on line 71

2 个答案:

答案 0 :(得分:1)

请不要使用不推荐使用的mysql函数。使用mysqli或PDO进行数据库操作。此外,编写查询字符串的方式使SQL注入变得容易,而是使用预处理语句。这是一个例子:

$db = new PDO("...");
$statement = $db->prepare("select id from some_table where name = :name");
$statement->execute(array(':name' => "Jimbo"));
$row = $statement->fetch(); 

您还可以使用预准备语句来插入或更新数据。更多示例here

答案 1 :(得分:0)

如FilipNikolovski所说,不使用mysql函数,不推荐使用它们。使用mysqli或PDO进行数据库操作。

对于您的问题,函数mysql_query返回false。查询未返回任何结果,因此mysql_query返回false。

像这样检查:

$query = "SELECT * FROM oc_product_description WHERE product_id=$id";
$run1 = mysql_query($query);
if($run1)
{
     if(mysql_num_rows($run1) > 0)
     {
          while ($fetch1 = mysql_fetch_object($run1))
          {
                // your stuff here
          }
     }
     else
     {
          echo "No records found.";
     }
}
else
{
      echo "Error in query : ".mysql_error();
}

这将帮助您检测问题并解决问题。