在sqlqry.php中
function procat(){
require_once("..\db.php");
$procat = $DBH->prepare("SELECT pro_sr FROM products LEFT JOIN
categories ON products.pro_cat=categories.cat_sr");
$procat->execute();
while($rowprocat[]=$procat->fetch()) {}
return $rowprocat;
}
in products.php
<?php
$rowprocat=procat();
print_r($rowprocat);
?>
Array ( [0] => Array ( [pro_sr] => 60 [0] => 60 ) [1] => Array ( [pro_sr] => 61 [0] => 61 ) [2] => Array ( [pro_sr] => 62 [0] => 62 ) [3] => )
为什么它显示4行,而实际上它有3条记录。也在phpMyAdmin中测试过3.第4行是空的。
答案 0 :(得分:0)
因为您要将$procat->fetch()
的返回值分配给数组,无论是否有结果。
这就是为什么大多数人在PHP中使用临时变量的原因:
function procat(){
require_once("..\db.php");
$procat = $DBH->prepare("SELECT pro_sr FROM products LEFT JOIN
categories ON products.pro_cat=categories.cat_sr");
$procat->execute();
while($row = $procat->fetch()) {
$rowprocat[] = $row;
}
return $rowprocat;
}