跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

mysql - php导入csv文件内容到数据库

现在需要将csv文件里的所有内容读取并插入到数据库 回复内容: 现在需要将csv文件里的所有内容读取并插入到数据库 你参考 php excel这个类库看看
$file = fopen('xxx.csv', 'r'); while($data = fgetcsv($file)) { $result [] = $data; } //$result数组就是CVS的内容啦,把$result存到数据库就好。 fclose($file);
先用fgetcsv把CSV文件转成一个数组,然后开启事务,循环插入,代码示例如下: PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载
query('SET AUTOCOMMIT=0'); $db->query('START TRANSACTION'); foreach($arr as $row) { $stmt = $db->prepare('INSERT INTO posts (id, post_title, post_content) VALUES (?,?,?)'); $stmt->bind_param('iss', $row[0], $row[1], $row[2]); //这里假设每行内容分别为ID,标题和内容 $stmt->execute(); //如果插入失败,改为更新 if($stmt->affected_rows == 0 || $stmt->affected_rows == -1) { $stmt = $db->prepare('UPDATE posts SET post_title = ?, post_content = ? WHERE id = ?'); $stmt->bind_param('ssi', $row[1], $row[2], $row[0]); $stmt->execute(); if($stmt->affected_rows == 0 || $stmt->affected_rows == -1) { echo 'Import '.$row[0].' failed!'."\n"; } } } $db->query('COMMIT'); $db->query('SET AUTOCOMMIT=1');

相关文章