Задать вопрос
@shinoaq

Как сделать get запрос в бд через php?

Есть бд test содержащая столбы login и pass
Через гет запрос надо вывести echo pass по login

Не работает именно сам вывод при site.ru/auth.php?login=...
Всегда выводит пустую страницу, в бд записи есть, SELECT в самой бд таким же образом работает
<!DOCTYPE html>
<head>
  <title>Auth</title>
  <meta charset="utf-8">
</head>
<body>
  <?php
  $mysqli = new mysqli($host, $user, $password, $db_name);
  $mysqli->set_charset("utf8");
  if ($mysqli->connect_errno){
  $json_array = array("error" => 1, "message" => "Ошибка подключения к БД");
  $json = json_encode($json_array, JSON_UNESCAPED_UNICODE);
  exit($json);
  }
  else {
    if (isset($_GET['login'])) {
      $query = "SELECT * FROM `test` WHERE login=".$_GET['login'];
      $sql = mysqli_query($mysqli,$query) or die(mysqli_error());
      if (mysqli_num_rows($sql) > 0) {
            $myrow = mysqli_fetch_array($sql);
            $pass = $myrow['pass'];
                echo $pass->format("%d");
      }else{
        echo '-1';
      }
    }
  }
  ?>
</body>
  • Вопрос задан
  • 588 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
z80b
@z80b
Frontend
потому что login - строка и должна быть в кавычках в запросе
$query = "SELECT * FROM `test` WHERE login=\"" . $_GET['login'] . "\"";
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Может излишне, но всё же: проведите последовательную отладку, чтобы выяснить что в вашем скрипте на самом деле происходит на каждом его шаге. Например:
if (isset($_GET['login'])) {
      $query = "SELECT * FROM `test` WHERE login=".$_GET['login'];
      echo "query=$query\n";
      $sql = mysqli_query($mysqli,$query) or die(mysqli_error());
      echo "num_rows=".mysqli_num_rows($sql)."\n";
      if (mysqli_num_rows($sql) > 0) {
            $myrow = mysqli_fetch_array($sql);
            $pass = $myrow['pass'];
            var_export($myrow);
                echo $pass->format("%d");
      }else{
        echo '-1';
      }
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы