Android から php にデータを送信しようとすると、logcat で次のような黄色の警告が表示されます。
SingleClientConnManager の無効な使用: 接続がまだ割り当てられています
と:
W/SingleClientConnManager(274): 別の接続を割り当てる前に、必ず接続を解放してください。
私のコードは次のようになります:
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("email", ""));
InputStream is=null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://zzzzz.com/zzz.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpclient.execute(httppost);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is=entity.getContent();
} catch (IOException e) {
}
そして、私の zzz.php には次のものがあります。
<?php
$email = "aaa";
if (session_id() == "")
{
session_start();
}
if (!isset($_SESSION['username']))
{
header('Location: ./index.php');
exit;
}
else
{
$username = "******";
$password = "****";
$host = "****";
$database = "****";
$db = mysql_connect($host, $username, $password);
if (!$db)
{
die('Failed to connect to database server!<br>'.mysql_error());
}
else
{
mysql_select_db($database, $db) or die('Failed to select database<br>'.mysql_error());
mysql_query("UPDATE Users SET lat='".$email."' WHERE username='{$_SESSION['username']}'");
}
}
?>
ところで、mysql_query が非推奨になったことは知っているので、変更します。とにかく上記のコードは機能しません。つまり、mysql の緯度値に「aaa」とは書かれていません。どこが間違っていますか?