我如何从Select Statement中检索行

时间:2014-09-07 22:05:16

标签: php

我需要将行存储在数组中,但似乎无法使其工作,代码如下: 我确定$ result = $ stmt-> get_result();不起作用。

当我在浏览器中测试输出为空时。

<?php

include "connect.php";


$uid = $_REQUEST["U_ID"];


$stmt = $mysqli->prepare("SELECT * FROM U_User WHERE U_ID = ?");
$stmt->bind_param("d", $uid);
$stmt->execute();
    $stmt->fetch();
    $result = $stmt->get_result();

    while ($row = $result->fetch_assoc())
    {
      $users[] = $row;
    }
$stmt->close();


$arr = array('user' => $users);

echo json_encode($arr);

mysqli_close($conn);

?>

1 个答案:

答案 0 :(得分:0)

就像php_nub_qq说的那样。我切换到PDO很棒。

<?php

        include "connect.php";


        $uid = $_REQUEST["U_ID"];

        $q = $conn->prepare("SELECT * FROM U_User WHERE U_ID = :uid");
        $q->execute(array(':uid' => $uid));
        $q->setFetchMode(PDO::FETCH_ASSOC);

        while ($r = $q->fetch()) {
            $users[] = $r;
        }


        $q = $conn->prepare("SELECT * FROM P_Post u WHERE P_U_ID = :uid");
        $q->execute(array(':uid' => $uid));
        $q->setFetchMode(PDO::FETCH_ASSOC);

        while ($r = $q->fetch()) {
            $posts[] = $r;
        }


        $q = $conn->prepare("SELECT * FROM T_Thread u WHERE T_U_ID = :uid");
        $q->execute(array(':uid' => $uid));
        $q->setFetchMode(PDO::FETCH_ASSOC);

        while ($r = $q->fetch()) {
            $threads[] = $r;
        }




        $arr = array('user' => $users, 'post' => $posts, 'thread' => $threads);

        echo json_encode($arr);

        $conn = null;


    ?>