【发布时间】:2014-05-24 18:32:02
【问题描述】:
我有以下查询,我想运行整个表,以便一个接一个地给我表的每个值。我需要它在另一个查询中使用特定的行值。
for ($qoffset=0; $qoffset<=5; $qoffset++) {
$result = mysqli_query($con,"select nf865_virtuemart_products.product_sku from nf865_virtuemart_products order by product_sku asc limit 1 offset '".$qoffset."';");
echo "offset='$qoffset' <br>";
while($row = mysqli_fetch_array($result,MYSQLI_BOTH)) {
echo $row[0];
echo "<br>";
}
我得到的是“警告:mysqli_fetch_array() 期望参数 1 是 mysqli_result,给定的布尔值”
结果我似乎得到了一个布尔值(假),如果放置一个数字而不是一个变量,查询就可以正常工作。
请问有什么帮助吗?
进一步的sql:
mysqli_query($con,"Insert Ignore Into nf865_virtuemart_product_medias(virtuemart_product_id,virtuemart_media_id,ordering) VALUES (
(Select nf865_virtuemart_products.virtuemart_product_id from nf865_virtuemart_products where nf865_virtuemart_products.product_sku LIKE '0100100'),
(Select nf865_virtuemart_medias.virtuemart_media_id from nf865_virtuemart_medias
where nf865_virtuemart_medias.file_url LIKE '%0100100 b.jpg' or nf865_virtuemart_medias.file_url LIKE %0100100 B.jpg'),2)");
我尝试过但还没有成功:
$query1 = mysqli_query($con,"Select nf865_virtuemart_products.virtuemart_product_id from nf865_virtuemart_products where nf865_virtuemart_products.product_sku LIKE '".$product_id."'");
它需要像这样的“$变量”,因为它没有返回任何内容。
【问题讨论】:
-
在使用它之前检查
mysqli_query(实际上是大多数mysqli_函数)的返回值是个好主意,以防出现错误。例如:if ($result) { // process data } else { // handle error } -
根据the documentation,如果查询失败,
mysqli_query返回false。所以你应该有一个if子句,就像 pwaring 建议的那样。
标签: php mysql sql limit offset