如何在函数中使用外部生成的MySQL查询结果
MySQL查询结果无法在函数中正常遍历
我有一个简单的MySQL查询,在页面上能正常输出结果,但想把查询结果放到函数里使用时,试了两种方法都失败了。
原始查询(可正常运行)
查询本身没问题,在函数外能正常操作结果:
$sql = 'SELECT * FROM someTable'; $result = $db_connection->query($sql);
两种失败的尝试
第一种尝试
直接在函数里使用外部的$result变量,无法运行:
function _checkQuery(){ if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo $row["Data"]; } } }
第二种尝试
把$result作为参数传入函数,依然无法正常遍历结果:
_checkQuery($result); function _checkQuery($db){ if ($db->num_rows > 0) { while($row = $db->fetch_assoc()) { echo $row["Data"]; } } }
测试与结论
为了排查问题,我写了测试代码:
function _checkHour($db){ if ($db->num_rows > 0) { echo "x"; while($row = $db->fetch_assoc()) { echo "y"; } } }
测试后得出:
echo "x"能正常输出,说明传入的$db变量不为空;echo "y"完全没输出,但函数能正常结束,问题出在while($row = $db->fetch_assoc())这一行。之前有人建议用fetch_assoc(),但按该方法写的代码直接导致函数中断。
内容的提问来源于stack exchange,提问作者Vicente Chazard
相关产品推荐
相关产品推荐

