将MySQL结果转换为PHP数组
我正在尝试获取以下格式的json数组:将MySQL结果转换为PHP数组,php,mysql,json,pdo,Php,Mysql,Json,Pdo,我正在尝试获取以下格式的json数组: var js_array = [ ["Name1", "Address1", "Url1"], ["Name2", "Address2", "Url2"], etc... ] 来自MySQL查询。 这是我的数据库: +---------+-------------+---------+ | Name | Address | URL | +---------+-------------+---------+ | N
var js_array = [
["Name1", "Address1", "Url1"],
["Name2", "Address2", "Url2"],
etc...
]
来自MySQL查询。
这是我的数据库:
+---------+-------------+---------+
| Name | Address | URL |
+---------+-------------+---------+
| Name1 | Address1 | Url1 |
| Name2 | Address2 | Url2 |
| Name3 | Address3 | Url3 |
+---------+-------------+---------+
我试过这个:
$query = $bdd->query('SELECT Name, Adress, URL FROM festivals');
while ($row = $query->fetch()) {
$array[] = $row['Name'];
$array[] = $row['Adress'];
$array[] = $row['URL'];
}
//Then I return it as an js array that I use later
$js_array = json_encode($array);
$query = $bdd->query('SELECT Name, Adress, URL FROM festivals');
while ($row = $query->fetch()) {
$array[] = $row;
}
//Then I return it as an js array that I use later
$js_array = json_encode($array);
结果是:
["Name1", "Address1", "Url1", "Name2", "Address2", "Url2", "Name3", "Address3", "Url3"]
我也试过:
$query = $bdd->query('SELECT Name, Adress, URL FROM festivals');
while ($row = $query->fetch()) {
$array[] = $row['Name'];
$array[] = $row['Adress'];
$array[] = $row['URL'];
}
//Then I return it as an js array that I use later
$js_array = json_encode($array);
$query = $bdd->query('SELECT Name, Adress, URL FROM festivals');
while ($row = $query->fetch()) {
$array[] = $row;
}
//Then I return it as an js array that I use later
$js_array = json_encode($array);
其中返回以下内容:
[
{0: "Name1", 2: "Address1", 2: "Url1", Name: "Name1", Address: "Address1", URL: "Url1"},
{0: "Name2", 2: "Address2", 2: "Url2", Name: "Name2", Address: "Address2", URL: "Url2"}
]
有办法得到我想要的吗?
谢谢您只需要为每一行创建一个数组,其中只有值:
$query = $bdd->query('SELECT Name, Adress, URL FROM festivals');
while ($row = $query->fetch()) {
$array[] = array($row['Name'], $row['Adress'], $row['URL']);
}
//Then I return it as an js array that I use later
$js_array = json_encode($array);
或者您可以只执行
fetchAll()
,这也可以执行相同的操作。@第二个测试用例相当于fetchAll()
,并产生错误的结果。例如,请参见@Nick,这是因为fetch样式默认为PDO::fetch\u BOTH
。要获取数字索引,只需执行$query->fetchAll(PDO::FETCH_NUM)
。