我正在尝试
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
答案 0 :(得分:0)
CSV中的帖子有帮助;使用撇号作为表名。
更改以下代码:
$tablename = $data[19];
到:
$tablename = "`".$data[19]."`";
使用var_dump()
PS:请停止使用已弃用的API。