이제 csv 파일의 모든 내용을 읽고 데이터베이스에 삽입해야 합니다.
이제 csv 파일의 모든 내용을 읽고 삽입해야 합니다. csv 파일을 데이터베이스에 저장
phpexcel 클래스 라이브러리를 참조하세요
$file = fopen('xxx.csv', 'r'); while($data = fgetcsv($file)) { $result [] = $data; } //$result数组就是CVS的内容啦,把$result存到数据库就好。 fclose($file);
먼저 fgetcsv를 사용하여 CSV 파일을 배열로 변환한 다음 트랜잭션을 시작하고 루프를 실행합니다. 삽입, 코드 예시는 다음과 같습니다.
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');