Php Android错误:值<;无法将java.lang.String类型的br转换为JSONObject
目前,我创建了一个具有登录功能的应用程序。为了从android连接到MySQL数据库,我使用PHP。当我使用MySQLi时,一切都正常。但是,当我转换为PDO时,错误将与问题的标题相同。有人知道问题出在哪里吗?下面是我的PHP代码:Php Android错误:值<;无法将java.lang.String类型的br转换为JSONObject,php,mysql,pdo,Php,Mysql,Pdo,目前,我创建了一个具有登录功能的应用程序。为了从android连接到MySQL数据库,我使用PHP。当我使用MySQLi时,一切都正常。但是,当我转换为PDO时,错误将与问题的标题相同。有人知道问题出在哪里吗?下面是我的PHP代码: <?php require_once 'configPDO.php'; $response = array(); if(isTheseParametersAvailable(array('badgeid', 'pwd')
<?php
require_once 'configPDO.php';
$response = array();
if(isTheseParametersAvailable(array('badgeid', 'pwd'))){
$badgeid = $_POST['badgeid'];
$pwd = $_POST['pwd'];
$stmt = $conn->prepare("SELECT badgeid, email, fullname, roles_id, team_id FROM users WHERE badgeid = :badgeid AND pwd = :pwd AND roles_id = 3");
// $stmt->bind_param("ss",$badgeid, $pwd);
$stmt->bindParam(':badgeid',$badgeid,PDO::PARAM_STR);
$stmt->bindParam(':pwd',$pwd,PDO::PARAM_STR);
$stmt->execute();
//$stmt->store_result();
if($stmt->rowCount() > 0){
$stmt->bindParam($badgeid, $email, $fullname, $roles_id, $team_id);
$stmt->fetch();
$user = array(
'badgeid'=>$badgeid,
'email'=>$email,
'fullname'=>$fullname,
'roles_id'=>$roles_id,
'team_id'=>$team_id
);
$response['error'] = false;
$response['message'] = 'Login successfull';
$response['user'] = $user;
}else{
$response['error'] = false;
$response['message'] = 'Invalid username or password';
}
}
echo json_encode($response);
function isTheseParametersAvailable($params){
foreach($params as $param){
if(!isset($_POST[$param])){
return false;
}
}
return true;
}
第二个bindParam()
(您应该阅读并理解该方法在中的确切作用!),如果条件是无意义的
更改此项:
if($stmt->rowCount()>0){
$stmt->bindParam($badgeid、$email、$fullname、$roles\u id、$team\u id);
$stmt->fetch();
$user=array(
“badgeid”=>$badgeid,
“email”=>$email,
“fullname”=>$fullname,
'roles\u id'=>$roles\u id,
“团队id”=>$team\u id
);
为此:
$result=$stmt->fetch(\PDO::fetch_ASSOC);//以数组形式获取结果
如果($结果){
//由于我们只获取要发回的字段,因此您可以直接将`$result`分配给`$response['user']`
$response['user']=$result;
PHP抛出了一个相关错误,您可能会在请求的原始响应中看到它!这里似乎遇到了一个服务器错误。请查看原始响应(在转换为JSON之前)你从服务器返回。原始响应是什么意思?在你将其转换为JSON之前,你从服务器获得的原始响应。你的客户端(android)代码看起来如何?@CodyKL你想在这方面帮助我吗?我可以给androidcode@Dharman您能突出显示错误在哪里吗?fetch(\PDO::fetch\u ASSOC)?在fetch中是什么?fetch()
默认使用\PDO::FETCH_BOTH
,因为我们想通过字段名直接访问结果,所以我们将\PDO::FETCH_ASSOC
设置为FETCH样式,这减少了数组,否则每个列值有2个条目,1个带有编号键,一个带有字段名。有关更多信息,请参阅我更新了代码上面,这里不需要$stmt->rowCount()>0
,您可以直接检查$result
。仍然有错误。我已经在这里更新了我的问题,请查看