Php 如何从Select语句中检索行

Php 如何从Select语句中检索行,php,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-

我需要将行存储在数组中,但似乎无法使其工作,代码如下: 我确信$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);

?>

就像php\u nub\u 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;


    ?>


SQL注入从何而来?U\U ID列是整数还是双精度?另外,我认为$stmt->fetch()是不必要的。如果输出为空,那么即使最后的JSON生成也不会成功。启用
错误报告
$stmt->fetch()
$result=$stmt->get_result(),而($row=$result->fetch_assoc())
?我相信每次调用后,每个函数都会将内部指针向前移动,所以最后一个->
($row=$result->fetch_assoc())
试图返回第三个结果,我猜您的查询只返回1。很抱歉,我的回答有误导性,我没有注意到您使用的是mysqli而不是PDO。我真的建议你改用PDO,一旦你掌握了它就会容易得多。