繁体   English   中英

显示准备好的语句的结果

[英]Displaying Results from Prepared Statements

我有下表:

| id | name  | age |
|----|-------|-----|
| 1  | Peter | 23  |
| 2  | Amie  | 34  |
| 3  | Eddy  | 45  |
| 4  | Peter | 56  |
| 5  | Eddy  | 67  |

我现在想检索所有名为Peter用户的年龄。

JS:

function getAge() {
    $.ajax({
        type : "POST",
        url : "backend.php",
        data : {
            q : "user",
            name : 'Peter'
        },
        success : function(data) {
            console.log(data)
            if (data.length > 0) {

            } else {
                console.log("empty")
            }
        },
        error : function(jqXHR, status, error) {
            console.log(status, error);
        }
    });
}

PHP:

if (isset ( $_POST )) {
   if ($_POST ['q'] == "user") {
        $name = $_POST ["name"];

        $stmt = $link->prepare ( "SELECT age FROM tab1 WHERE name= ?" );

        $stmt->bind_param ( "s", $name );
        $stmt->execute ();
        $stmt->store_result ();

        if ($stmt->num_rows >= 1) {
            echo "Yes"; // only this Yes is being returned
            $arr = array ();
            while ( $stmt->fetch () ) {
                $arr [] = $name;
            }
            return $arr;
        } else {
            echo "0 records found";
        }

        $link->close ();
}

而不是带有2356的数组,我只得到Yes

那么我怎样才能得到带有年龄的数组呢?

只需将其添加到您的 php 函数中即可。 这意味着您想将 json 返回到此页面

header('Content-Type: application/json');

将您的 return $arr 更改为 echo json_encode($arr); 要将您的数组转换为 json 对象,还要删除您的回声“是”;

echo json_encode($arr);

你的 php 函数看起来像这样

if (isset ( $_POST )) {
   if ($_POST ['q'] == "user") {
        header('Content-Type: application/json');
        $name = $_POST ["name"];

        $stmt = $link->prepare ( "SELECT age FROM tab1 WHERE name= ?" );

        $stmt->bind_param ( "s", $name );
        $stmt->execute ();
        $stmt->store_result ();

        if ($stmt->num_rows >= 1) {
            $arr = array ();
            while ( $stmt->fetch () ) {
                $arr [] = $name;
            }
            echo json_encode($arr);
        } else {
            echo "0 records found";
        }

        $link->close ();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM