我有一段代码在我的PHP文件(正常工作):在PHP中,SQLite3Result对象尚未正确初始化
$db = new Database();
$stmt = $db->prepare("SELECT * FROM bills WHERE group_id=:gid");
$stmt->bindValue(":gid", $_SESSION['group_id'], SQLITE3_INTEGER);
if (($result = $stmt->execute()) === false) {
echo "bad";
}
$bills = $result;
while ($bill = $bills->fetchArray()) {
do stuff....
}
然后我尽量把所有的数据库相关的代码功能:
function getBillsByGID($gid) {
$db = new Database();
$stmt = $db->prepare("SELECT * FROM bills WHERE group_id=:gid");
$stmt->bindValue(":gid", $gid, SQLITE3_INTEGER);
if (($result = $stmt->execute()) === false) {
return null;
}
return $result;
}
原始文件:
$bills = getBillsByGID($_SESSION['group_id']);
while ($bill = $bills->fetchArray()) {
do stuff...
}
这给了我消息:"Warning: SQLite3Result::fetchArray(): The SQLite3Result object has not been correctly initialised in line 61"
(有行))
var_dump($bills)
调用该函数后给object(SQLite3Result)#10 (0) { }
那么,如何使一个功能,将正常工作?
谢谢,但问题是查询返回很多行,我想循环。您的解决方案只允许查看第一行。 – MrDaulet
@MDdlet请检查我的更新回答 – Fabio
太棒了!没想过。这解决了我的问题。然而,奇怪的是,我无法正确返回函数返回SQLite3Result对象... – MrDaulet