php - Android 错误:值
目前,我创建了一个具有登录功能的应用程序。要从 android 连接到 MySQL 数据库,我使用 PHP。当我使用 MySQLi 时,一切正常。但是当我转换为 PDO 时,错误将与我的问题标题相同。谁能知道是什么问题?下面是我的PHP代码:
问题描述
目前,我创建了一个具有登录功能的应用程序。要从 android 连接到 MySQL 数据库,我使用 PHP。当我使用 MySQLi 时,一切正常。但是当我转换为 PDO 时,错误将与我的问题标题相同。谁能知道是什么问题?下面是我的PHP代码:
<?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;
}
像任何与性能有关的问题一样,使用 Chrome 开发人员工具分析您的代码。
在 Audits 选项卡下并对其运行一些性能审计。
在“性能”选项卡下开始新的录制并重新加载页面。
如果您在图表中看到任何峰值,则可能存在性能问题。但是,如果您只看到请求之间的等待时间很长,那么这只是一个网络问题。
解决方案
你的第二个bindParam()
(你应该阅读并理解这个方法到底做了什么!)里面的if
条件是胡说八道!
改变这个:
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
);
对此:
$result = $stmt->fetch(\PDO::FETCH_ASSOC); // Get results as array
if ($result) {
// Since we only get the fields we want to send back, you can assign `$result` directly to `$response['user']`
$response['user'] = $result;
PHP 抛出了一个相关的错误,您会在请求的原始响应中看到该错误!
推荐阅读
- javascript - 在合并图中订阅内部 Observable,这是不好的做法吗?
- java - 指向旧 git 位置的 tomcat 8.0 服务器
- javafx - Javafx 和 JSSC 串行通信
- sql - 如何检查表列中是否存在值?
- node.js - Nodejs - 如何查找用于请求的路由器?
- c - '未定义的对'函数'的引用
- java - 简化代码 - 检查字符串中的第一个字符以匹配字符列表
- python - Python按数组值对JSON进行排序
- python - 如何使用 docker Docker SDK for Python 获取容器大小
- oracle - 分析具有重复记录的oracle表
目前,我创建了一个具有登录功能的应用程序。要从 android 连接到 MySQL 数据库,我使用 PHP。当我使用 MySQLi 时,一切正常。但是当我转换为 PDO 时,错误将与我的问题标题相同。谁能知道是什么问题?下面是我的PHP代码:
问题描述
目前,我创建了一个具有登录功能的应用程序。要从 android 连接到 MySQL 数据库,我使用 PHP。当我使用 MySQLi 时,一切正常。但是当我转换为 PDO 时,错误将与我的问题标题相同。谁能知道是什么问题?下面是我的PHP代码:
<?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;
}
像任何与性能有关的问题一样,使用 Chrome 开发人员工具分析您的代码。
在 Audits 选项卡下并对其运行一些性能审计。
在“性能”选项卡下开始新的录制并重新加载页面。
如果您在图表中看到任何峰值,则可能存在性能问题。但是,如果您只看到请求之间的等待时间很长,那么这只是一个网络问题。
你的第二个bindParam()
(你应该阅读并理解这个方法到底做了什么!)里面的if
条件是胡说八道!
改变这个:
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
);
对此:
$result = $stmt->fetch(\PDO::FETCH_ASSOC); // Get results as array
if ($result) {
// Since we only get the fields we want to send back, you can assign `$result` directly to `$response['user']`
$response['user'] = $result;
PHP 抛出了一个相关的错误,您会在请求的原始响应中看到该错误!