如何使用PHP将大型xls或csv数据集转换为mysql数据,最好使用Silverstripe API?我可以直接执行此操作,还是需要先转换为文本?
答案 0 :(得分:5)
SilverStripe有多种方法可将CSV文件导入数据模型。
本节的文档值得一读: https://docs.silverstripe.org/en/3.1/developer_guides/integration/csv_import/
最快捷,最简单的方法是使用DataObject
界面管理自定义ModelAdmin
并使用内置的CSV导入程序。
class PlayerAdmin extends ModelAdmin {
private static $managed_models = array(
'Player'
);
private static $url_segment = 'players';
}
当您转到播放器ModelAdmin
时,您会在左侧看到CSV导入表单。确保CSV文件中的列标题与数据对象的变量名称对齐。
对于更复杂的导入方法,请阅读文档以了解允许您执行此操作的替代方法。
答案 1 :(得分:1)
Example #1 Read and print the entire contents of a CSV file
<?php
$row = 1;
if (($handle = fopen("test.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);
}
?>