我的本地主机上有PHP服务器。 并使用以下脚本文件:
?php
include 'config.php';
$mysqli = new mysqli(GGC_HOST , GGC_USER , GGC_PASSWORD , GGC_DB);
if (mysqli_connect_errno()){
die("Connect failed: ". mysqli_connect_error());
}//if
$mysqli->set_charset("utf8");
$queryString="SELECT Id, name, description, price, old FROM fruits;";
$myArray=array();
if ($result = $mysqli->query($queryString)) {
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$myArray[] = $row;
}//while
}//if
echo json_encode($myArray);
$result->close();
$mysqli->close();
?>
当我尝试在浏览器中运行php文件时,它会给我一些结果,如下所示:
[{“ Id”:“ 1”,“ name”:“ \ u10d5 \ u10d0 \ u10e8 \ u10da \ u10d8”,“ description”:“ \ u10d1 \ u10e0 \ u10dd \ u10ea \ u10d9 \ u10d8 一世 \ u10ee \ u10d0 \ u10e0 \ u10d8 \ u10e1 \ u10ee \ u10d8 \ u10e1“,”价格“:” 1.25“,”旧“:” 0“},{” Id“:” 2“,”名称“:” \ u10db \ u10e1 \ u10ee \ u10d0 \ u10da \ u10d8“,”说明“:” \ u10d2 \ u10e3 \ u10da \ u10d0 \ u10d1 \ u10d8 \ u10d5 \ u10d0 \ u10dc \ u10d8 \ u10e1“,”价格“:” 3.5“,”旧“:” 0“}]
我的第一个问题是:为什么它在浏览器中显示得如此奇怪,以及如何解决?
当我从JavaScript中获取数据时:
fetch('http://localhost/aaa/fruits.php', {
method: 'GET', // *GET, POST, PUT, DELETE, etc.
mode: 'no-cors', // no-cors, cors, *same-origin
headers: {
'Content-Type': 'application/json',
"Access-Control-Allow-Origin":"*"
// 'Content-Type': 'application/x-www-form-urlencoded',
},
// Useful for including session ID (and, IIRC, authorization headers)
})
.then(response => response.json())
.then(data => {
console.log(data) // Prints result from `response.json()`
})
.catch(error => console.error(error))
控制台向我显示:
SyntaxError:输入意外结束 在index.js:156
我无法在3天内解决此问题,因此决定与您分享。 第156行是:
.then(response => response.json())
答案 0 :(得分:-1)
更好的方法是使用PDO。
$db = new PDO(
'dbname=yourDb; mysql:host=localhost;charset=utf8',
"username",
"password",
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$sql = $db->prepare("SELECT Id, name, description, price, old FROM fruits");
$sql->execute();
$data = $sql->fetchAll(PDO::FETCH_ASSOC);
现在您可以执行以下操作:
$json = json_encode($data);