我正在使用这个用于android应用程序的php api来获取令牌,以便根据服务器和用户[电话]发送通知。问题是我在应用程序中出错,只有我的api的这部分出错。哪个错误是
<br />
<b>Notice</b>: Undefined variable: token in <b>/home/meskand1/public_html/pasargad-drinkshop/db_functions.php</b> on line <b>390</b><br />
null
我已经在下面注解了第390行和函数代码。
代码在get\u result&fetch\u assoc中运行得很好,但是由于online host不支持mysqlnd,所以我不得不更改它。有人能解释一下错误发生的地方和原因吗?在教程中,讲师返回了$token,现在我的代码中出现了错误。
下面是函数中的代码:
public function getToken($phone,$isServerToken){
$stmt = $this->conn->prepare("SELECT phone, token, isServerToken FROM `token` WHERE phone=? AND isServerToken=?") or die ($this->conn->error);
$stmt->bind_param("ss",$phone,$isServerToken);
$result = $stmt->execute();
$stmt->bind_result($a,$b,$c);
while ($stmt->fetch()){
$token[] = ['phone' => $a, 'token' => $b, 'isServerToken' => $c];
}
$stmt->close();
return $token; // => This is line 390
}
呼叫
if(isset($_POST['phone']) && isset($_POST['isServerToken'])){
$userPhone = $_POST['phone'];
$isServerToken = $_POST['isServerToken'];
$token = $db->getToken(urlencode($userPhone),$isServerToken);
echo json_encode($token);
} else {
$response = "Required parameter (phone , isServerToken) is missing!";
echo json_encode($response);
}
1条答案
按热度按时间rdrgkggo1#
如果sql与任何数据都不匹配,
$token
未定义,因为它仅在循环中设置。你至少应该在循环之前初始化它以防万一。。。