2016-01-18 75 views
2

我正在爲我的應用程序做一個註冊登錄活動,當我註冊所有的信息都會去我的數據庫,除了電子郵件。即使我輸入了正常的電子郵件地址,數據庫中的值仍爲「0」。電子郵件被保存在數據庫中,值爲0

我檢查了我的代碼和我的php文件中的所有內容,但找不到問題。

public class createAccountActivity extends AppCompatActivity implements View.OnClickListener { 

EditText etUsername,etEmail, etAge, etPassword; 
Button register; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.createaccount); 


    etUsername = (EditText) findViewById(R.id.create_username); 
    etEmail = (EditText) findViewById(R.id.create_email); 
    etAge = (EditText) findViewById(R.id.create_age); 
    etPassword = (EditText) findViewById(R.id.create_password); 
    etConfirmPassword = (EditText) findViewById(R.id.confirm_password); 




} 

@Override 
public void onClick (View v) { 
    switch (v.getId()){ 
     case R.id.register: 


      String username = etUsername.getText().toString(); 
      String email = etEmail.getText().toString(); 
      int age = Integer.parseInt(etAge.getText().toString()); 
      String password = etPassword.getText().toString(); 

      User user = new User(username, email, age, password); 
      registerUser(user); 

      break; 
    } 

} 

private void registerUser(User user) { 
    ServerRequests serverRequest = new ServerRequests(this); 
    serverRequest.storeUserDataInBackground(user, new GetUserCallback() { 
     @Override 
     public void done(User returnedUser) { 
      Intent loginIntent = new Intent(createAccountActivity.this, Login.class); 
      startActivity(loginIntent); 
     } 
    }); 
} 

}

在我UserLocalStore.java我

public void storeUserData(User user) { 
    SharedPreferences.Editor userLocalDatabaseEditor = userLocalDatabase.edit(); 
    userLocalDatabaseEditor.putString("username", user.username); 
    userLocalDatabaseEditor.putString("email", user.email); 
    userLocalDatabaseEditor.putString("password", user.password); 
    userLocalDatabaseEditor.putInt("age", user.age); 
    userLocalDatabaseEditor.commit(); 
} 

我的類用戶

public class User { 

String username, email, password; 
int age; 

public User(String username,String email , int age, String password) { 
    this.username = username; 
    this.age = age; 
    this.email = email; 
    this.password = password; 
} 

public User(String username, String password) { 
    this(username,"", -1, password); 
} 
} 

而且我ServerRequests.class

if (jObject.length() != 0){ 
       Log.v("happened", "2"); 
       String username = jObject.getString("username"); 
       int age = jObject.getInt("age"); 
       String email = jObject.getString("email"); 

       returnedUser = new User(username, user.username, age, user.password); 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return returnedUser; 
    } 

回答

0

答案很簡單,在我的register.php中寫了「siss」而不是「ssis」,所以它被看作是一個int。

mysqli_stmt_bind_param($statement, "siss", $username, $email, $age, $password); 

正確的:

mysqli_stmt_bind_param($statement, "ssis", $username, $email, $age, $password);

對不起,我應該有它提供(PHP文件),難怪我沒有得到解決。

0

那麼它似乎returnedUser在ServerRequests.class把user.username在電子郵件應該是,既然你已經宣佈它作爲

public User(String username,String email , int age, String password) 

和它說

returnedUser = new User(username, user.username, age, user.password); 
中的其他文件

+0

用'returnedUser = new User(user.username,email,age,user.password)'對其進行了更改 – Bifista

+0

您在數據庫中註冊了哪些數據類型的電子郵件?如果是Int(通過misstake)也可以解釋它 –

+0

varchar(50)\t latin1_swedish_ci – Bifista

相關問題