0

我正在努力掌握这种 mysqli 风格的查询。有人可以帮我处理这段代码吗?

目的是将查询的结果(或数据库中的三个)放入一个数组中,以便我可以将它们显示在一个表中,例如。

这是我的代码...

$get_orders_stmt = $db->prepare(
            "select cap_transaction_id, company_id, company_transaction_id, cap_points, transaction2login
                from transactions
                where transaction2login = ?");
            $get_orders_stmt->bind_param("s", $_SESSION['username']); 
            $get_orders_stmt->execute();
            while($row = $get_orders_stmt->fetch()) {
                $results[] = $row;
                print_r($results);

我希望将 $row 作为返回的记录放入数组中,但我担心我完全错了!我的 print_r() 给了我这个...

Array ( [0] => 1 ) Array ( [0] => 1 [1] => 1 ) Array ( [0] => 1 [1] => 1 [2] => 1 )

请问有什么想法或指点吗?

更新!原来我的机器不符合规范,这里有最佳答案。我需要 MYSQLIND 来获取 get_results(); 我正在转向更兼容的东西。

4

3 回答 3

0

使用 mysqli 总是很痛苦。

因此,如果您要在代码中使用原始 API 调用,请更改 API

$sql = "select cap_transaction_id, company_id, company_transaction_id, 
        cap_points, transaction2login 
        from transactions where transaction2login = ?"

$stmt = $db->prepare($sql);
$stmt->execute(array($_SESSION['username']));
$results = $stmt->fetchAll();
print_r($results);
于 2013-05-28T08:31:12.007 回答
0

您应该检查文档。mysqli_stmt::fetch 返回一个布尔值。您需要使用 mysqli_stmt::bind_result 将结果绑定到变量。

于 2013-05-27T21:40:51.060 回答
-1

fetch() 不是正确的功能。你应该

...
$get_orders_stmt->execute();
$res = $get_orders_stmt->get_result();
while($row = $res->fetch_assoc())
    $results[] = $row;

请参阅文档以在 fetch_assoc(返回字段关联数组)、fetch_row(返回非关联数组,可按列号索引)和 fetch_array(在行和关联之间合并)之间进行选择

于 2013-05-27T21:42:42.347 回答