## 编写一个临时PHP页面用来处理数据
在项目中遇到一些数据要进行初始化,由于数据量较大(2W+),人工处理太浪费时间,所以编写了一段代码来进行处理。
### 功能简述
1. 只是连下数据库,输出一下数据脚本
2. 用框架太繁琐,还要配置
3. 需要在页面上输出一些调试内容
### 知识点
1. **响应头**:默认PHP环境下的编码是**iso-8859-1**,如果直接输出中文,则会出现乱码;此外如果没有定义文本类型的话,那么浏览器可能不能识别html标签。
2. **mysqli的使用**:这里应该没什么问题,就是直接写mysqli的裸代码不熟练;另外在循环结果集的时候,php提供了N多个方法,其实用的多的大概就只有**fetch_assoc**和**fetch_object**了。
3. **超时问题**:一开始的时候想着直接在代码里面执行UPDATE脚本的,要考虑超时问题,不过后来改成直接输出,所以这部分就跳过了。
4. **编码转换**:由于数据库的编码和PHP文件的编码可能不一致,所以需要人为设置一下操作数据库时的编码格式。
### 实现代码
```
<?php
header('Content-Type:text/html;charset=utf-8'); // 响应头
$db_host = "172.16.13.33:3306"; // 数据库地址
$db_user = "develop"; // 账号
$db_psw = "develop"; // 密码
$db_name = "awsdev"; // 数据库
$mysqli = new mysqli($db_host, $db_user, $db_psw, $db_name);
if (!$mysqli) {
echo "数据库连接失败";
}
/* 设置数据库查询编码为utf8 */
if (!mysqli_set_charset($mysqli, "utf8")) {
printf("Error loading character set utf8: %s\n", mysqli_error($mysqli));
exit();
} else {
// printf("Current character set: %s\n", mysqli_character_set_name($mysqli));
}
// 查询脚本
$query="SELECT * FROM `bo_act_asset_sign`";
$result = $mysqli->query($query);
if ($result) {
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
// 逻辑处理以及脚本输出
}
}
} else {
echo "查询失败";
}
// 空间释放以及连接断开
$result->free();
$mysqli->close();
```