【发布时间】:2015-11-23 03:49:12
【问题描述】:
我正在为 android 构建软键盘,它具有我想上传到我的网站服务器上我的数据库中的用户行的设置,然后当用户更改设备并登录时,设置是相同的。我以前使用过 SQL,但我没有将 android 应用程序连接到我的网站数据库的经验。我在网上找到了一些东西,但它给出了我插入数据库中的字符串示例的空结果。这是我要在数据库中运行测试的表:
名称 |详情
拉扎尔 |名字
果冻 |姓氏
岩石 |巴尔博亚
我的托管网站服务器上有名为 keyboard.php 的 php 脚本,它的外观是这样的:
<?php
mysql_connect("hostname", "username", "password") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$link= $_GET['link'];
$query = "SELECT * FROM keyboard WHERE link=" . "'" . $link. "'";
$result =mysql_query($query);
if($result){
while($row= mysql_fetch_array( $result )) {
echo $row['name']
. " " . $row['link']
. " " . $row['time'];
}
}
?>
这是我的SyncDatabse.java:
public class SyncDatabase {
public static String getFromDB(String linkToGetData) throws IOException {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
HttpClient httpclient=new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://www.ecloga.org/keyboard.php?link=" + linkToGetData);
HttpResponse response = httpclient.execute(httpget);
String theResponse = EntityUtils.toString(response.getEntity());
return theResponse;
}
}
请帮我解决这个问题。提前致谢。问任何你想知道的。
【问题讨论】:
-
您的字符串 theQuery 是“ecloga.org/keyboard.php?name=rocky”。好吧,如果您测试此 URL,您将得不到任何解释 null 结果的信息
-
不要简单地将 URL 查询字符串参数(在您的情况下为
name)放入 SQL 语句中。阅读“SQL 注入”以了解您为什么不想要这个,永远不要。此外,永远不要抓住NullPointerException,根本不要——而是在它发生时解决它或事先在正确的位置检查null。永远不要捕获异常并且不记录任何有关它的信息。你问为什么你的代码是错误的,但首先你应该听编译器和运行时。 -
如果可能的话,我应该将什么设置为 theQuery 以使我的应用程序访问我网站上的 php 文件或直接访问我的网站数据库? @user3641702
-
好的,我删除了
NullPointerException,我写了一个代码来检查字符串是空还是空。我该怎么办? @Risadinha -
在
keyboard.php我使用 $_GET 来接收数据。 @SubinThomas
标签: java php android mysql database