dongyuqie4322 2015-11-20 12:42
浏览 21
已采纳

CSV到Access数据库

I got in some dead-end. I have csv file, delimited by commas, but I'm not able to import data to database. What can be causing this? No errors, simpy no data getting imported

Import code:

<form enctype="multipart/form-data" method="POST">
        <input name="csv" type="file">
        <input type="submit" name="submit" value="submit">
      </form>

    <?php
        if (isset($_POST['submit'])) {
            $i=0;
            require "connection.php";
            if (is_uploaded_file($_FILES['csv']['tmp_name'])) {
                echo "<h3>" . "File ". $_FILES['csv']['name'] ." uploaded successfully." . "</h3>";
            }
            $handle = fopen($_FILES['csv']['tmp_name'], "r");
            $import=$db->prepare("INSERT INTO adherence(
                    dateandtime,
                    lastname,
                    firstname,
                    paidtime,
                    approvedtime,
                    notadhering)VALUES(
                    ?,?,?,?,?,?)");
            while (($data = fgetcsv($handle, 10000,',')) !== FALSE) {
                if($i>0) {
                $data = str_replace('"', '', $data);
                $myDate =  date("Y/m/d",strtotime(str_replace('/','-',$data[0])));
                $import->bindParam(1, $myDate, PDO::PARAM_STR);
                $import->bindParam(2, $data[1], PDO::PARAM_STR);
                $import->bindParam(3, $data[2], PDO::PARAM_STR);
                $import->bindParam(4, $data[3], PDO::PARAM_STR);
                $import->bindParam(5, $data[4], PDO::PARAM_STR);
                $import->bindParam(6, $data[5], PDO::PARAM_STR);
                $import->execute();
                }
                $i++;

            }
            $removal=$db->prepare("delete FROM adherence WHERE approvedtime = '0' OR notadhering IS NULL");
            $removal->execute();

            fclose($handle);
        }

CSV file format: CSV File

Database structure: Database structure

Any help would be appreciated.

  • 写回答

1条回答 默认 最新

  • dongyan6503 2015-11-20 13:22
    关注

    notadhering)VALUES(

    Try add a space

    notadhering) VALUES(
    

    I don't know how to write PHP code. After formatting, the sql command should be

    INSERT INTO adherence(
      dateandtime,
      lastname,
      firstname,
      paidtime,
      approvedtime,
      notadhering)
      VALUES(
      #2015/04/01 00:00#,
      'lastname',
      'name',
       8,
       0.14972222,
       0.31222222
       );
    

    I've quickly learned PHP (humor, just watched concatenation syntax). I think the PHP code should be

    $myDate = "#{$myDate}#";
    $lname =  "'{$data[1]}'";
    $fname = "'{$data[2]}'";
    $import->bindParam(1, $myDate, PDO::PARAM_STR);
    $import->bindParam(2, $lname, PDO::PARAM_STR);
    $import->bindParam(3, $fname, PDO::PARAM_STR);
    $import->bindParam(4, $data[3], PDO::PARAM_STR);
    $import->bindParam(5, $data[4], PDO::PARAM_STR);
    $import->bindParam(6, $data[5], PDO::PARAM_STR);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私