【发布时间】:2015-09-12 22:56:56
【问题描述】:
my_custom_table:
id int(11)
product_type varchar(210)
product_serial varchar(210)
created_at datetime
//Upload CSV File
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['upload_csv']['tmp_name'])) {
echo "<h1>" . "File ". $_FILES['upload_csv']['name'] ." uploaded successfully." . "</h1>";
}
//Import uploaded file to Database
$handle = fopen($_FILES['upload_csv']['tmp_name'], "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$wpdb->insert("my_custom_table", array(
"product_type" => $data[0],
"product_serial" => $data[1],
"created_at" => current_time('mysql', 1)
));
}
fclose($handle);
print "Import done";
}
打印$data输出,带分隔符,:
Array
(
[0] => Product Name;product_serial
)
Array
(
[0] => iPhone 6;iphone-002
)
Array
(
[0] => iPhone 6;iphone-003
)
打印$data输出,带分隔符;:
Array
(
[0] => Product Name
[1] => product_serial
)
Array
(
[0] => iPhone 6
[1] => iphone-002
)
Array
(
[0] => iPhone 6
[1] => iphone-003
)
使用上述方法,Product Name 和 product_serial 也会插入到 DB 中,这应该被阻止。此外,分隔符 , 不会输出正确的数组,而 ; 会。
如何防止 CSV 列名插入并在数据库中插入正确的值?
P.S:使用 OpenOffice 进行 CSV 数据插入。格式化可能是分隔符的问题吗?
【问题讨论】:
标签: php mysql wordpress csv file-upload