Привет, я разработчик iOS. Я пытаюсь создать простой вывод JSON с моего сайта. Я нашел хорошую стартовую ссылку и вот несколько объяснений, как это сделать.
Поэтому я создал файл accounts.php и поместил его в мою папку public_html
<?php
include_once("JSON.php");
$json = new Services_JSON();
$link = mysql_pconnect("localhost", "user", "pass") or die("Could not connect");
mysql_select_db("iglobe") or die("Could not select database");
$arr = array();
$rs = mysql_query("SELECT * FROM users");
while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}
Echo $json->encode($arr);
?>
Конечно, я использую мой пользователь и пароль, и я указал свою только что созданную базу данных на мой конец.
поэтому, когда я пытаюсь запросить мой файл, так что http//mywebsite.com/accounts.php нет данных.
Я попытался использовать google chrome и Postman, поэтому он говорит, что никакой ответ не получен, когда я переключаюсь на JSON. Для HTML в Postman нет информации.
Мой вопрос, как я могу его проверить? даже если я использую Echo (123) до include_once ("JSON.php"); линии нет 123 на странице html.
Я пытался проверить PHP только с помощью этого кода:
<?php
phpinfo();
?>
и это работает. У меня PHP версии 5.4.32
Прежде всего, просто используйте функцию PHP json_encode($arr)
. Он делает именно то, о чем вы просите, и в значительной степени включен в каждую версию PHP, о которой я могу думать.
Кроме того, я не уверен, что это проблема, но вы можете изменить Echo
==> echo
. Как правило, это соглашение.
СУПЕР ВАЖНО
Наконец, НЕ ИСПОЛЬЗУЙТЕ расширение mysql
. Он опасен, может работать некорректно и имеет уязвимости безопасности. Используйте mysqli или PDO.
Матросов -
Вы очень близки. Используйте функцию json_encode для вывода кода через руководство по PHP. Также рассмотрите возможность использования mysqli вместо mysql для подключения к базе данных, поскольку это была лучшая поддержка для современных серверов MySQL.
<?php
include_once("JSON.php");
$link = mysqli_connect("localhost", "user", "pass") or die("Could not connect");
$link->mysql_select_db("iglobe") or die("Could not select database");
$arr = array();
$rs = mysql_query("SELECT * FROM users");
while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}
echo json_encode($arr);
?>
display_errors
иerror_reporting
. Если ничего другого, даже если запрос полностью обработан, вы должны получить пустой кодированный в json массив:[]
. Так как вы этого не сделаете, сценарий спас перед утверждениями эха.