Вызов функции-члена fetchObject () при использовании sqlite

Я пытаюсь проверить с сервера, зарегистрирован ли пользователь или нет, вот мой код php:

<?php
error_reporting(E_ALL & ~E_NOTICE);
$dir = 'sqlite:/mumble-server.sqlite';
$dbh  = new PDO($dir) or die("cannot open the database");

if ($_POST['func'] == 1) {
$mobileUser = $_POST['phone'];
$res_list = "SELECT count(*) FROM appusers WHERE phone ='" . $mobileUser . "'";
$rock = $dbh->query($res_list);
while ($obj = $rock->fetchObject()) {
    $listing[] = $obj;
}
echo json_encode(array('reslogin' => $listing));
}

и вот мой код на стороне клиента (java):

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.2.26/SqliteTest/sqlite.php");
  try {
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("func", "1"));
    nameValuePairs.add(new BasicNameValuePair("phone", "09367701739"));
    Log.e("mainToPost", "mainToPost" + nameValuePairs.toString());
    UrlEncodedFormEntity form;
    form = new UrlEncodedFormEntity(nameValuePairs,"UTF-8");
    httppost.setEntity(form);
    HttpResponse response = httpclient.execute(httppost);
    InputStream inputStream = response.getEntity().getContent();
    MainActivity.InputStreamToStringExample str = new MainActivity.InputStreamToStringExample();
    responseLogin = str.getStringFromInputStream(inputStream);
    Log.e("response", "response -----" + responseLogin);
    jsonresponse = new JSONObject(responseLogin);
    responsemain = jsonresponse.toString();

  } catch (Exception e) {
    e.printStackTrace();
  }
  return null;

но я получаю ответ от сервера:

response -----<br /><b>Fatal error</b>:  Uncaught Error: Call to a member function fetchObject() on boolean in W:\xampp\htdocs\SqliteTest\sqlite.php:16Stack trace:#0 {main}  thrown in <b>W:\xampp\htdocs\SqliteTest\sqlite.php</b> on line <b>16</b><br />

а строка 16 - while ($obj = $rock->fetchObject()) { кто-нибудь знает, как я могу это исправить?


Я изменил свой PHP на

<?php
error_reporting(E_ALL & ~E_NOTICE);
$dir = 'sqlite:/mumble-server.sqlite';
$dbh  = new PDO($dir) or die("cannot open the database");
if ($_POST['func'] == 1) {
$mobileUser = $_POST['phone'];
$rock = $dbh->prepare("SELECT count(*) FROM appusers WHERE phone ='" . $mobileUser . "'");
$result = $rock->fetchAll(\PDO::FETCH_ASSOC);
echo json_encode(array('reslogin' => $result));
}

но теперь появляется эта ошибка:

response -----<br /><b>Fatal error</b>:  Uncaught Error: Call to a member function fetchAll() on boolean in W:\xampp\htdocs\SqliteTest\sqlite.php:8Stack trace:#0 {main}  thrown in <b>W:\xampp\htdocs\SqliteTest\sqlite.php</b> on line <b>8</b><br />

Из руководства PDO query: «PDO :: query () возвращает объект PDOStatement или FALSE в случае ошибки». Итак, ваш запрос не смогли

u_mulder 27.09.2018 10:34

Запрос: Ошибка говорит о строке 16, но в вашем коде всего 14 строк ??? Вы уверены, что это правильный фрагмент кода ??

RiggsFolly 27.09.2018 10:41

Я просто удалил закомментированные коды, когда задавал вопрос

Shakib Karami 27.09.2018 10:48

@u_mulder спасибо за ваш комментарий, извините, я новичок в PHP, вы можете сказать мне, какой код мне следует использовать, чтобы исправить это?

Shakib Karami 27.09.2018 10:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
132
0

Другие вопросы по теме