我正在尝试从数据库中获取数据,但不会检索特定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
答案 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();
}
这将帮助您检测问题并解决问题。