php使用PDO连接Mysql数据库查询表返回json格式数据
时间: 2023-05-19 20:06:29 浏览: 60
可以使用以下代码实现:
```php
<?php
// 连接数据库
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'root';
$password = 'password';
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
$dbh = new PDO($dsn, $username, $password, $options);
// 查询数据
$sql = 'SELECT * FROM users';
$stmt = $dbh->query($sql);
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 返回json格式数据
header('Content-Type: application/json');
echo json_encode($results);
?>
```
这段代码使用PDO连接Mysql数据库,查询名为"users"的表,并将结果以json格式返回。
相关问题
怎么写一个微信小程序访问到php 的mysql 数据库,获取存入的温湿度数据根据数据库表的时间展现出温湿度变化曲线
要实现微信小程序访问到PHP的MySQL数据库,需要按照以下步骤进行:
1. 在PHP服务器上创建一个API接口,用于从MySQL数据库中获取温湿度数据。可以使用PHP的数据库操作类库,如PDO或MySQLi来操作数据库。
2. 在小程序中编写代码,使用wx.request函数向PHP API接口发送请求,获取数据库中存储的温湿度数据。可以使用wxCharts库来绘制温湿度变化曲线。
下面是一个简单的示例代码:
PHP API接口:
```php
<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
// 查询温湿度数据
$sql = "SELECT * FROM temperature_humidity ORDER BY time DESC LIMIT 100";
$result = $conn->query($sql);
$data = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data[] = array(
'time' => $row['time'],
'temperature' => $row['temperature'],
'humidity' => $row['humidity']
);
}
}
// 返回JSON数据
header('Content-Type: application/json');
echo json_encode($data);
?>
```
小程序代码:
```javascript
// 发送请求获取温湿度数据
wx.request({
url: 'http://example.com/api.php',
success: function(res) {
var data = res.data;
// 绘制温湿度变化曲线
var chart = new wxCharts({
canvasId: 'temperature-humidity-canvas',
type: 'line',
categories: data.map(function(item) {
return item.time;
}),
series: [{
name: '温度',
data: data.map(function(item) {
return item.temperature;
})
}, {
name: '湿度',
data: data.map(function(item) {
return item.humidity;
})
}],
yAxis: {
title: '温湿度'
},
width: 400,
height: 300
});
}
});
```
在以上示例代码中,需要替换相应的数据库连接信息和API接口地址。同时,需要在小程序的配置文件app.json中添加网络请求地址的白名单,以允许小程序访问该API接口。
以上就是一个简单的微信小程序访问PHP的MySQL数据库并展现温湿度变化曲线的实现方式。
php返回省市区三级联动数据
可以通过查询数据库或者调用第三方API来获取省市区三级联动数据,以下是一个简单的示例:
1. 创建数据库表
首先,在数据库中创建一个表用于存储省市区数据,可以按照以下结构来设计:
```
CREATE TABLE `regions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`parent_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
2. 插入数据
然后,向表中插入省市区数据,例如:
```
INSERT INTO regions (name, parent_id) VALUES
('北京市', 0),
('天津市', 0),
('河北省', 0),
('山西省', 0),
('内蒙古自治区', 0),
('辽宁省', 0),
('吉林省', 0),
('黑龙江省', 0),
('上海市', 0),
('江苏省', 0),
('浙江省', 0),
('安徽省', 0),
('福建省', 0),
('江西省', 0),
('山东省', 0),
('河南省', 0),
('湖北省', 0),
('湖南省', 0),
('广东省', 0),
('广西壮族自治区', 0),
('海南省', 0),
('重庆市', 0),
('四川省', 0),
('贵州省', 0),
('云南省', 0),
('西藏自治区', 0),
('陕西省', 0),
('甘肃省', 0),
('青海省', 0),
('宁夏回族自治区', 0),
('新疆维吾尔自治区', 0),
('台湾省', 0),
('香港特别行政区', 0),
('澳门特别行政区', 0),
('北京市', 1),
('东城区', 2),
('西城区', 2),
('崇文区', 2),
('宣武区', 2),
('朝阳区', 2),
('丰台区', 2),
('石景山区', 2),
('海淀区', 2),
('门头沟区', 2),
('房山区', 2),
('通州区', 2),
('顺义区', 2),
('昌平区', 2),
('大兴区', 2),
('怀柔区', 2),
('平谷区', 2),
('密云县', 2),
('延庆县', 2),
('和平区', 3),
('河东区', 3),
('河西区', 3),
('南开区', 3),
('河北区', 3),
('红桥区', 3),
('塘沽区', 3),
('汉沽区', 3),
('大港区', 3),
('东丽区', 3),
('西青区', 3),
('津南区', 3),
('北辰区', 3),
('武清区', 3),
('宝坻区', 3),
('宁河县', 3),
('静海县', 3),
('蓟县', 3),
('石家庄市', 4),
('长安区', 5),
('桥西区', 5),
('新华区', 5),
('井陉矿区', 5),
('裕华区', 5),
('藁城区', 5),
('鹿泉区', 5),
('栾城区', 5),
('井陉县', 5),
('正定县', 5),
('行唐县', 5),
('灵寿县', 5),
('高邑县', 5),
('深泽县', 5),
('赞皇县', 5),
('无极县', 5),
('平山县', 5),
('元氏县', 5),
('赵县', 5),
('辛集市', 5),
('晋州市', 5),
('新乐市', 5),
('唐山市', 6),
('路南区', 7),
('路北区', 7),
('古冶区', 7),
('开平区', 7),
('丰南区', 7),
('丰润区', 7),
('曹妃甸区', 7),
('滦县', 7),
('滦南县', 7),
('乐亭县', 7),
('迁西县', 7),
('玉田县', 7),
('遵化市', 7),
('迁安市', 7),
('秦皇岛市', 8),
('海港区', 9),
('山海关区', 9),
('北戴河区', 9),
('青龙满族自治县', 9),
('昌黎县', 9),
('抚宁县', 9),
('卢龙县', 9);
```
3. 查询数据
最后,通过查询数据库获取省市区数据,例如:
```
<?php
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'root';
$password = '123456';
try {
$db = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
exit;
}
$provinces = $db->query('SELECT id, name FROM regions WHERE parent_id = 0')->fetchAll(PDO::FETCH_ASSOC);
foreach ($provinces as &$province) {
$citys = $db->query(sprintf('SELECT id, name FROM regions WHERE parent_id = %d', $province['id']))->fetchAll(PDO::FETCH_ASSOC);
foreach ($citys as &$city) {
$districts = $db->query(sprintf('SELECT id, name FROM regions WHERE parent_id = %d', $city['id']))->fetchAll(PDO::FETCH_ASSOC);
$city['children'] = $districts;
}
$province['children'] = $citys;
}
echo json_encode($provinces);
?>
```
这样,就可以得到一个包含省市区三级联动数据的JSON字符串。