bind在php中不返回任何结果
为什么我在下面的代码中没有得到结果,并且bind在php中不返回任何结果,php,bind,Php,Bind,为什么我在下面的代码中没有得到结果,并且num_rows返回0 这是我的密码: function get_user($user_id) {// This function give some data from table user with user_id try { $connection = start_service(); $user_id = sanitize_string($user_id); $stmt = $connection->pre
num_rows
返回0
这是我的密码:
function get_user($user_id) {// This function give some data from table user with user_id
try {
$connection = start_service();
$user_id = sanitize_string($user_id);
$stmt = $connection->prepare(
"SELECT user_id, name, lname, gender, password, avatar, bdate, user_group_id, status, signup_date, last_signin
FROM user
WHERE user_id = ?
");
$stmt->bind_param("i", $user_id);
$stmt->execute();
$stmt->bind_result($user_id, $name, $lname, $gender, $password, $avatar, $bdate, $user_group_id, $status, $signup_date, $last_signin);
if($stmt->num_rows){
while($stmt->fetch()) {
array_push($result, array(
"user_id" => $user_id,
"name" => $name,
"lname" => $lname,
"gender" => $gender,
"password" => $password,
"avatar" => $avatar,
"bdate" => $bdate,
"user_group_id" => $user_group_id,
"status" => $status,
"signup_date" => $signup_date,
"last_signin" => $last_signin
));
}
} else {
$result = false;
}
print $stmt->num_rows;
$stmt->close();
end_service();
} catch (exception $e) {
end_service_error();
echo $e->getMessage(), "\n";
throw $e;
}
return $result;
}
问题在哪里?我必须做些什么来解决它?我认为在调用
mysqli\u stmt\u store\u result()
之前,您需要调用mysqli\u stmt\u num\u rows()
谢谢,但我的问题是函数返回null。我尝试$stmt=>store_result(),但再次得到null。您确定用户ID确实有一行吗?好的,谢谢。我解决它。我必须定义一个数组(),比如:$result=array();为什么首先要返回数组?不能有多个用户具有用户ID,可以吗?此
选择是否与数据库表中的任何列匹配?
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($user_id, $name, $lname, $gender, $password, $avatar, $bdate, $user_group_id, $status, $signup_date, $last_signin);
if($stmt->num_rows){
...
}