Не получает идентификатор ресурса из запроса PHP MySQL

#php #mysql #json

#php #mysql #json

Вопрос:

Я попытался повторить значение $ query из запроса mysql_query, но я не получаю идентификатор ресурса #, который я обычно получаю. Пожалуйста, не могли бы вы сказать мне, в чем проблема со следующим кодом. Кроме того, я был бы признателен, если бы вы могли сказать мне, как я мог бы, во-первых, запустить цикл for для получения данных из запроса, а во-вторых, закодировать их в json.

Я бы хотел, чтобы данные из запроса анализировались как json следующим образом:

Массив словарей, словарь выглядит следующим образом:

 click_id = ....
shorten_url = ....
referrer = ....
ip_address = ....
country_code = ....
  

PHP:

 $dbhandle = mysql_connect($hostname, $username, $password) 
  or die("Unable to connect to MySQL");
mysql_select_db("nucleusi_mkdev") or die("Unable to select db");
$query = "SELECT  `click_id` ,  `shorturl` ,  `referrer` ,  `ip_address` ,  `country_code`FROM yourls_log";
$result = mysql_query($query);
echo $result;
    ?>
  

Комментарии:

1. Что произойдет, если вы сделаете var_dump ($result) вместо echo? Это просто null?

2. он возвращает: ресурс (2) типа (результат mysql). Я попробовал mysql_num_rows, и это вернуло правильное количество строк для запроса.

Ответ №1:

Идентификатор ресурса может изменяться для каждого запроса. Поэтому я бы не стал заострять на этом внимание. Если вам интересно узнать о результатах, вы можете сделать mysql_num_rows($result);

В документах есть отличные примеры кода. Проверьте mysql_fetch_assoc() для перебора результатов вашего запроса и json_encode () для кодирования каждой записи.

Краткий фрагмент для демонстрации двух вместе:

 $records = array();
while ($row = mysql_fetch_assoc($result)) {
    print_r($row);
    array_push($records, $row);
}

echo json_encode($records);
  

Комментарии:

1. как бы я сохранил результаты mysql_fetch_assoc () до того, как они будут закодированы в json_encoded? Пожалуйста, имейте в виду, что я новичок!

2. Вы пробовали приведенный выше код. Проверьте это, поскольку это может дать вам некоторые идеи. Подробнее о хранилище .

3. работает отлично. Мне пришлось удалить строку печати, но это работает 🙂