我一直在用PHP使用mysql来跟踪csv导入教程来存储数据,当我回显数据时,我得到的是整行,而不是在第一个单元格中获取数据。这可能是我的csv文件的问题,因为我的字段分隔是:逗号和我的文字分隔是:双引号?当我回显出第一个元素echo $fileop[0];
时,我得到的是整行而不是第一个元素应该是:title。
任何人都知道这是什么问题?
这是我的代码:
<?php
$host = 'localhost';
$user = 'root';
$pass = 'root';
$db_name = 'testcsvdump';
$db = new mysqli($host, $user, $pass, $db_name);
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
if( isset($_POST['submit']) ){
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
while ( ($fileop = fgetcsv($handle, 1000, ',')) !== false ) {
echo $fileop[0];
}
}else{
echo 'failed';
}
?>
,输出为:
titleNameEmail地址
(但我试图回应出“标题”,它是第一个单元格中的第一个元素)。 当我打开我的CSV文件时,每个标题和数据都在他们自己的单元格中。我使用以下设置导出文件。
字段分隔是:逗号
文本分隔是:双引号
答案 0 :(得分:0)
问题在于csv文件本身,当我用文本edito打开csv时,我注意到每行的末尾都没有逗号,所以当我试图回显第一个元素时,脚本回显出来第一排。一旦我在csv文件中添加了缺少的逗号,php脚本就完全按照它应该做的那样。
答案 1 :(得分:0)
很好,你解决了你的问题。我确实有一个建议可能会使CSV文件更容易使用。我总是倾向于使用这个PHP库,它有自动检测和许多其他有用的功能。这对我帮助很大。还不能评论......