Php Android登录mysql数据库
大家好,我正在用android做一个简单的登录系统,登录mysql数据库。这就是我迄今为止所尝试的: main活动:Php Android登录mysql数据库,php,android,mysql,Php,Android,Mysql,大家好,我正在用android做一个简单的登录系统,登录mysql数据库。这就是我迄今为止所尝试的: main活动: protected String doInBackground(String... args) { strUsername = etUsername.getText().toString(); strPassword = etPassword.getText().toString(); try{
protected String doInBackground(String... args) {
strUsername = etUsername.getText().toString();
strPassword = etPassword.getText().toString();
try{
String data = URLEncoder.encode("username", "UTF-8")
+ " = " + URLEncoder.encode(strUsername, "UTF-8");
data += "&" + URLEncoder.encode("password", "UTF-8")
+ " = " + URLEncoder.encode(strPassword, "UTF-8");
URL url = new URL(url_login);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write( data );
wr.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
// Read Server Response
while((line = reader.readLine()) != null)
{
sb.append(line);
break;
}
Log.e("TAG", sb.toString());
return sb.toString();
}catch(Exception e){
return new String("Exception: " + e.getMessage());
}
}
PHP方面:
<?php
// Connect to dbconnect.php
include('dbconnect.php');
// array for JSON response
$response = array();
// username and password sent from form
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $conn->prepare('SELECT username, password FROM customer WHERE username = :username AND password = :password');
$stmt->execute(array(':username' => $username, ':password' => $password ));
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$user = $result['username'];
$affected_rows = $stmt->rowCount();
if($affected_rows >= 1){
$response["success"] = 1;
// successfully inserted into database
$response["message"] = "New record successfully created.";
// echoing JSON response
echo json_encode($response);
}
else{
$response["success"] = 0;
echo json_encode($response);
}
?>
样本记录:
用户名:admin
密码:admin
我尝试运行此操作,但它得到的响应是:success:0,这意味着不成功。我在这里做错了什么?我非常感谢你的帮助。非常感谢。
*PDOStatement::rowCount()返回受相应PDOStatement对象执行的最后一个DELETE、INSERT或UPDATE语句影响的行数
如果关联PDO语句执行的最后一条SQL语句是SELECT语句,某些数据库可能会返回该语句返回的行数。但是,不能保证所有数据库都有这种行为,便携式应用程序不应依赖这种行为*
检查$result以查看您是否有用户名。(根据要求回答注释)
而不是所有这些:
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$user = $result['username'];
$affected_rows = $stmt->rowCount();
if($affected_rows >= 1){
在$stmt->execute(数组…
行下尝试此操作
if($stmt->rowCount() > 0)
{ echo "Exists"; }
else { echo "Does not exist"; }
或者看看我是从哪里得到的。你可能想把
密码列添加到你的选择中,就像在选择用户名,来自客户的密码
@Fred ii-我在添加密码时仍然得到相同的密码OK。那么把如果($infected\u rows>=1)
更改为如果($infected\u rows>0)
@Fred ii-同样的问题再次出现而不是所有的$result=$stmt->fetch(PDO::fetch_ASSOC);$user=$result['username'];$impacted_rows=$stmt->rowCount();if($impacted_rows>=1){
在执行…
--如果($stmt rowCount()>0)
或者看看我从哪里得到这个答案