使用CSV字段创建表并插入其余记录

时间:2013-01-28 16:42:51

标签: php mysql

我正在尝试

  • 使用我从table获得的字段创建fgetcsv()
  • table-name字段将是一个日期(如13/10/2012)。我想将它附加到另一个字符串并将其用作我的表名。

到目前为止我的代码:

if (($handle = fopen($this->filetemp, "r")) !== FALSE) {

    $ctr = 1;
    $tablename ="";

    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        if($ctr ==1) {

            $tablename =  $data[19];

            $query = "CREATE TABLE  ". $tablename ."( PlayerName VARCHAR(60),Handycap INT UNSIGNED NOT NULL,Score INT NOT NULL,Front DOUBLE NOT NULL,Back DOUBLE,Prize VARCHAR(80));" ;
            mysqli_query($this->dbconn,$query);

            $name = str_replace("'"," ",$data[9]);
            mysqli_query($this->dbconn,"INSERT INTO  ". $tablename . " (PlayerName,Handycap,Score,Front,Back) VALUES ('$name', '$data[10]', '$data[11]','$data[12]','$data[13]')");

            $ctr++;
        }
        else if ($ctr > 1)  {
            $name = str_replace("'"," ",$data[9]);
            mysqli_query($this->dbconn,"INSERT INTO  ". $tablename . " (PlayerName,Handycap,Score,Front,Back) VALUES ('$name', '$data[10]', '$data[11]','$data[12]','$data[13]')");

            $ctr++;
        }
    }
    fclose($handle);
}
  • 目前我只是想使用索引为19的日期

    但桌子没有创建!!当我尝试它。我也尝试使用其他索引值创建表名,但它仍然无效。

我认为我会以错误的方式接近这一点,任何帮助都会受到赞赏。干杯!

Sampel CSV记录:

  

“高尔夫俱乐部”,“比赛结果报告”,“十月每月奖章 -   13/10/2012 [Stroke]“,”球员   名字“,”H'cap“,”得分“,”前面“,”后退“,”新障碍“,”名字,   secondname“,”9“,”66“,”34.5“,”31.5“,”“,”玩家打印:“,1,”报告   由Genesys Convenor制作。“,”印刷于:“,13/10/2012,”页面编号:“,1

     

“高尔夫俱乐部”,“比赛结果报告”,“十月每月奖章 -   13/10/2012 [Stroke]“,”球员   名字“,”H'cap“,”得分“,”前面“,”后退“,”新障碍“,”名字,   secondname“,”18“,”66“,”33.0“,”33.0“,”“,”玩家打印:“,2,”报告   由Genesys Convenor制作。“,”印刷于:“,13/10/2012,”页面编号:“,1

1 个答案:

答案 0 :(得分:0)

CSV中的帖子有帮助;使用撇号作为表名。

更改以下代码:

$tablename =  $data[19];

到:

$tablename =  "`".$data[19]."`";

使用var_dump()

等函数进行调试会更容易

PS:请停止使用已弃用的API。