在一个在线教程中,我找到了一种如何写入mysql在线数据库的方法。
这是我的php部分:
<?php
echo 'test';
$connect = mysql_connect("localhost","user","pwd","dbname");
if(mysql_connect_errno($connect))
{
echo "Failed to connect to MySQL: " . mysql_connect_error();
}
else
{
echo "success";
}
$name= isset($_POST['appname']) ? $_POST['appname'] : '';
$email= isset($_POST['appemail']) ? $_POST['appemail'] : '';
$query = mysql_query($connect, "insert into jagdenwilli(name, email) values ('$name' ,'$email') ");
mysql_close($connect);
?>
user
和pwd
通常是我的mysql数据库的用户名和密码,dbname
是我的数据库的名称(id,name,email,date)
这是我的android部分:
public void senden(){
Toast t = Toast.makeText(this, "asd", Toast.LENGTH_SHORT);
t.show();
String name = "Herbert";
String email = "herbert@gmail.com";
HttpClient httpclient;
HttpPost httppost;
ArrayList<NameValuePair> nameValuePairs;
httpclient = new DefaultHttpClient();
httppost = new HttpPost("http://www.ff-ehrnsdorf.at/jagdenwilli.php");
try
{
nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name", name));
nameValuePairs.add(new BasicNameValuePair("email", email));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
}
catch(Exception e)
{
e.printStackTrace();
}
}
我确信我访问的链接是正确的,但我的数据库中没有任何数据。也没有错误。我的错误在哪里?
答案 0 :(得分:2)
看起来您的变量名称不匹配:
name
&amp; Java端的email
vs appname
和appemail
匹配它们你应该很高兴。
同样适用于您的连接语句:使用以下语法:
$handle = mysql_connect($host, $user, $pass);
@mysql_select_db($database) or die( "Unable to select database");
下面是一个简单的mysql配置示例:
$h = "127.0.0.1";
$u = "root";
$p = "";
$database = "gps";
$handle = mysql_connect($h, $u, $p);
@mysql_select_db($database) or die( "Unable to select database");
if (!$handle) {
echo "Could not connect to server\n";
trigger_error(mysql_error(), E_USER_ERROR);
}
在您的情况下,您只需要更换$ u&amp; $ p,用户名和密码。您还需要将$ database替换为您的表所在的数据库/模式的名称。
答案 1 :(得分:1)
不要使用“mysql_query()”。
相反,您应该绝对使用预准备语句,而不是像PDO或MySQLi这样的API:
http://us1.php.net/pdo.prepared-statements
http://us1.php.net/mysqli_query
<?php
// EXAMPLE:
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
另外,根据MagicMan,确保表单中的参数与PHP中的变量名匹配,并且插入中的列名与数据库中的列名匹配。