Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php代码连接MySQL时如何检查db是否为空_Php_Android_Mysql_Database - Fatal编程技术网

使用php代码连接MySQL时如何检查db是否为空

使用php代码连接MySQL时如何检查db是否为空,php,android,mysql,database,Php,Android,Mysql,Database,我目前正在开发一个Android应用程序。它连接到000webhost提供的免费数据库。我在数据库中创建了一个表。如果表中存储了数据,则数据存储和检索过程工作正常。但如果表中没有存储数据,应用程序甚至无法运行。所以我想解决这个问题的一个方法是添加一个数据库检查方法。然而,我不知道如何在java中实现,因为我使用php文件连接到服务器。我尝试添加php代码来检查db是否为空,但它不起作用。所以我想知道如何检查db是否为空 这是我的php文件: <?php //I just hide m

我目前正在开发一个Android应用程序。它连接到000webhost提供的免费数据库。我在数据库中创建了一个表。如果表中存储了数据,则数据存储和检索过程工作正常。但如果表中没有存储数据,应用程序甚至无法运行。所以我想解决这个问题的一个方法是添加一个数据库检查方法。然而,我不知道如何在java中实现,因为我使用php文件连接到服务器。我尝试添加php代码来检查db是否为空,但它不起作用。所以我想知道如何检查db是否为空

这是我的php文件:

<?php

  //I just hide my personal info.
 $con = mysql_connect('serveraddress', 'username',  'dbpw');
mysql_select_db('dbname', $con);

$r = mysql_query('SELECT * FROM ForumData');

 while($row = mysql_fetch_array($r)){
  $out[] = $row;
}

print(json_encode($out));
mysql_close($con);

?>

这就是我从数据库中检索数据的方式,当数据库中有数据时,它工作,但当没有数据时,它不工作

private class RetrieveTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... params) {

        try {
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(SERVER_ADDRESS + "RetrieveReplyData.php");
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), exceptionMessage + ", Ex1", Toast.LENGTH_SHORT).show();
        }

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            result = sb.toString();
            System.out.println("-----JSON Data-----");
            System.out.println(result);
            is.close();
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), exceptionMessage + ", Ex2", Toast.LENGTH_SHORT).show();
        }

        try {
            JSONArray jsonArray = new JSONArray(result);
            int totalCount = jsonArray.length();
            for (int i = 0; i < totalCount; i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                respondent = jsonObject.getString("reply_user");
                content = jsonObject.getString("reply_content");
                datetime = jsonObject.getString("reply_datetime");

                itemList.add(new ReplyItemList(respondent, content, datetime));
            }
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), exceptionMessage + ", Ex3", Toast.LENGTH_SHORT).show();
        }


        return null;
    }
私有类RetrieveTask扩展了AsyncTask{
@凌驾
受保护的Void doInBackground(Void…参数){
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost-HttpPost=newhttppost(服务器地址+“RetrieveReplyData.php”);
HttpResponse HttpResponse=httpClient.execute(httpPost);
HttpEntity HttpEntity=httpResponse.getEntity();
is=httpEntity.getContent();
}捕获(例外e){
Toast.makeText(getApplicationContext(),exceptionMessage+”,Ex1),Toast.LENGTH_SHORT.show();
}
试一试{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(is,“iso-8859-1”),8;
StringBuilder sb=新的StringBuilder();
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
结果=sb.toString();
System.out.println(“----JSON数据---”);
系统输出打印项次(结果);
is.close();
}捕获(例外e){
Toast.makeText(getApplicationContext(),exceptionMessage+“,Ex2”,Toast.LENGTH_SHORT).show();
}
试一试{
JSONArray JSONArray=新JSONArray(结果);
int totalCount=jsonArray.length();
对于(int i=0;i
您的问题是,只有在有结果的情况下才定义
$out
。如果没有结果,$out为null,然后您将
null
json发送回客户端,然后客户端尝试将该null视为数组。您只需
$out=array()
在代码开头的某个地方。您还应该避免使用mysql_*函数,因为它们已被弃用,并且将在现代版本的PHP中停止工作。谢谢您,Marc,它工作phpMyAdmin不是一个数据库,它只是管理员可以用来管理数据库安装的工具。