[英]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 ();
}
而不是带有23
和56
的数组,我只得到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.