我使用此代码,我在$id
变量中获得了整列值,但我只想访问456,即我想访问列的行值。我能做些什么呢?screenshot
我使用的代码是:
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$c = 0;
while(($filesop = fgetcsv($handle, 1000, ",")) !== false)
{
$id=$filesop[0];
$name = $filesop[1];
$email = $filesop[2];
$sql = mysqli_prepare($conn, "INSERT INTO csv (id, name, email) VALUES (?, ?,?)");
mysqli_stmt_bind_param($sql, 'sss', $id, $name, $email);
$result=mysqli_stmt_execute($sql);
$c = $c + 1;
}
if($result){
echo "You database has imported successfully. You have inserted ". $c ." recoreds";
}else{
echo "Sorry! There is some problem.";
}
答案 0 :(得分:1)
我的csv看起来像:
colA,colB,colC
456,person1,email1@example.com
896,person2,email2@example.com
<?php
$handle = fopen("example.csv", "r");
while(($filesop = fgetcsv($handle, 1000, ",")) !== false)
{
$id = $filesop[0];
var_dump($id);
}
?>
Output :
string(4) "colA" string(3) "456" string(3) "896"
如果我在fgetcsv中使用了错误的分隔符(';'而不是“,”):
output :
456,person1,email1@example.com
如果要在数据库中添加id == 456的行:
while(($filesop = fgetcsv($handle, 1000, ",")) !== false)
{
$id = intval($filesop[0]);
if($id == 456)
{
$name = $fileops[1];
$email = $fileops[2];
$sql = mysqli_prepare($conn, "INSERT INTO csv (id, name, email) VALUES (?, ?,?)");
// i : integer (id)
// s : string (name)
// s : string (mail)
mysqli_stmt_bind_param($sql, 'iss', $id, $name, $email);
$result=mysqli_stmt_execute($sql);
}
}