MySql数据库以CSV表格方式导出/导入PHP项目

首先依旧是先放成品:

<?php
// 导入CSV文件
$csvFile = fopen('qtu.csv', 'r');
// 数据库连接信息
$servername = "localhost";
$username = "lansbk";
$password = "XPY520520520";
$dbname = "lansbk";
// 要操作的表单
$tableName = "typecho_contents";
//默认匹配字段
$searchField = "cid";
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
	die("连接失败: " . $conn->connect_error);
}
// 遍历CSV文件的每一行
//记录行值
$hang = 0;
while (($row = fgetcsv($csvFile)) !== false) {
	// 每一行数据作为一个数组
	$rowData = $row;
	//行累积
	$hang = $hang + 1;
	//判断为第一行
	if ($hang == 1) {
		//备份
		$rowData2 = $rowData;
		//首行作为键名
		function createNewArray($inputArray) {
			$newArray = array();
			foreach ($inputArray as $value) {
				$newArray[$value] = $value;
			}
			return $newArray;
		}
		$rowData4 = createNewArray($rowData);
		print_r($rowData4);
		//$searchField = $rowData2[0];
	} else {
		// 遍历后面行中的每个字段,然后构造为一个带标题键名的新数组
		// 获取作为字符键名的数组的长度
		$length = count($rowData2);
		// 创建一个新的关联数组,将没有键名的索引数组转换为带有字符键名的关联数组
		$newArray = array();
		for ($i = 0; $i < $length; $i++) {
			$rowData3[$rowData2[$i]] = $rowData[$i];
		}
		echo "<br><hr>读取改行数据:" . "<br>";
		print_r($rowData3);
		echo "<br>识别ID为:" . $rowData3[$searchField] . "<br>开始更新数据库操作:<br>";
		//开始更新数据库操作
		//判断是否全盘更新
		if (true) {
			foreach ($rowData2 as $field) {
				//匹配字段不操作
				if ($searchField != $field) {
					echo  $field . $rowData3[$searchField] . "更新<br>";
					// 构造适合替换的条件语句
					$rowCondition = "$rowData4[$searchField] = \"$rowData3[$searchField]\"";
					// 要更新的字段名称
					$fieldToUpdate = $rowData4[$field];
					// 替换为要设置的新值
					$newValue = $rowData3[$field];
					//对特殊字符转义
					$newValue = $conn->real_escape_string($newValue);
					// 构建更新语句(字段反引号防止保留字)
					$sql = "UPDATE $tableName SET `$fieldToUpdate` = '$newValue' WHERE $rowCondition";
					// 执行更新操作
					if ($conn->query($sql) === TRUE) {
					} else {
						echo "更新失败: " . $conn->error;
					}
				}
			}
		} else {
		}
	}
}
$conn->close();
// 关闭CSV文件
fclose($csvFile);
?>
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
留言 抢沙发
头像
来都来了,不说两句?
提交
头像

昵称

取消
昵称表情代码图片

    请登录后查看评论内容