【发布时间】:2016-04-07 03:15:22
【问题描述】:
我正在尝试使用 PHP 将一些值插入 MySQL 数据库。我相当确定我的 android 代码是正确的,但我对 PHP 的了解非常有限。我是不是在做一些明显的错误?
<?
$databasehost = "MyIPAdress:port";
$databasename = "databaseIWant";
$databaseusername = "UserWithPerms";
$databasepassword = "CorrectPassword";
$con = mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
mysql_select_db($databasename) or die(mysql_error());
$email = $_POST['email'];
$password = $_POST['password'];
$school = $_POST['school'];
$sql = "INSERT INTO users(username, password, school) VALUES ('$email', '$password', '$school');
$query_exec = mysql_query($sql) or die(mysql_error());
mysql_close();
?>
这里也是安卓代码:(Java)
当用户注册时,此方法被调用:
private void RegisterNewUser(String username, String password) {
RegisterUserOnNetwork regUser = new RegisterUserOnNetwork();
regUser.execute(username, password);
}
class RegisterUserOnNetwork extends AsyncTask<String, String, String> {
private Exception exception;
protected String doInBackground(String... strings) {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("email", strings[0]));
nameValuePairs.add(new BasicNameValuePair("password", strings[1]));
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://IpAdress/RegisterUser.php");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
Log.e("RESULT", EntityUtils.toString(httpEntity) + "l");
return "Gebruiker suksesvol geskep!";
} catch (Exception e) {
e.printStackTrace();
return "Bediener kon nie bereik word nie.";
}
}
}
【问题讨论】:
-
您是否测试了与数据库的连接?有效吗?
-
我有另一个 C# 应用程序连接到同一个数据库并且它可以工作(尽管它不使用 PHP)。所以数据库正在工作:)
-
因为使用 MySQL(第一次)在 Android 客户端和数据库之间建立连接通常很痛苦,所以你真的应该首先担心配置。
-
我猜想结束
$sql字符串的缺少的"只是一个错字并且在您的 PHP 代码中是正确的? -
对不起,您不是有用户名而不是电子邮件吗?所以看起来你试图发布到电子邮件,但你使用的用户名。 "INSERT INTO users(username, password, school) 应该是 "INSERT INTO users(email, password, school)