使用CSV将数据发布到MySQL数据库PHP

时间:2018-05-29 10:51:32

标签: php csv mysqli

我有点卡在这里,需要一点建议。我正在尝试从csv文件中提取数据,然后将其推送到MySQL数据库。我的数据库设置有6个字段,首先是id,每个条目设置为A_I,然后以下5个字段只是我csv中数据的文本标题。

CSV示例:

标题1,标题2,TITLE3,TITLE4,TITLE5,

数据1,数据2,数据3,数据4,数据5,

数据库示例:

ID:1

Title1:Data1

Title2:Data2

Title3:Data3

Title4:Data4

Title5:Data5

理想情况下,我试图忽略csv中的前5 ,,因为它们只是标题,然后每个csv都有5 ,的倍数,这是数据条目。但是,当我遇到困难时,我不确定如何将数据和INSERT简单地提取到SQL数据库中,其中每个字段在数据库中的每个字段下输入5 ,。我想我已经尽力解释了。

这就是我从数据库中提取数据的方式

<html>
    <body>
        <table>
            <tr>Title1</tr>
            <tr>Title2</tr>
            <tr>Title3</tr>
            <tr>Title4</tr>
            <tr>Title5</tr>

            <?php
                include "php/db.php";

                if ($conn->connect_error) {
                    die("Connection failed: " . $conn->connect_error);
                } 


                $sql = "SELECT * FROM myTable";
                $result = $conn->query($sql);

                if ($result->num_rows > 0) {
                    // output data of each row
                    while($row = $result->fetch_assoc()) {                    
                        echo '<tr>'
                                .'<td>'.$row["title1"].'</td>'
                                .'<td>'.$row["title2"].'</td>'
                                .'<td>'.$row["title3"].'</td>'
                                .'<td>'.$row["title4"].'</td>'
                                .'<td>'.$row["title5"].'</td>'
                            .'</tr>';
                    }
                } else {
                    echo "0 results";
                }
                $conn->close();
            ?>
        </table>
    </body>
</html>

对于我已经上传的csv文件的INSERT方式有点困惑。

修改

正如Karsten Koop在评论中所述,尝试使用已输出以下数据的fgetcsv

  

第1行中的5个字段:

     

标题1

     

标题2

     

TITLE3

     

TITLE4

     

TITLE5

     

第2行中的5个字段:

     

数据1

     

数据2

     

数据3

     

数据4

     

DATA5

使用以下代码:

$row = 1;
if (($handle = fopen("docs/mycsv1.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}

现在的问题是我如何使用这些数据对我的数据库进行INSERT(请记住,有些文件有第2,3或第4行但是它们仍然有5个字段?

0 个答案:

没有答案