这不是简单的数据库中插入行的计数。我为每个用户运行一个查询,所以不像我用一个查询一次导入5个用户。这会很容易,我会使用affected_rows
或num_rows
。但有了这样的代码:
do {
if ($data[0]) {
//var_dump($data);
$query = "INSERT INTO `$tabela` (";
$last = end($anotherArray);
$numberOfValues=count($anotherArray);
if($numberOfValues==1){
$query.="$anotherArray[0])";
}else {
foreach ($anotherArray as $something) {
if ($something != $last) {
$query .= "" . $something . ",";
} else {
$query .= "" . $something . ")";
}
}
}
$query .= "VALUES (";
$lengtara = count($anotherArray);
$length1 = count($data);
foreach ($data as $d) {
$query .= "'$d',";
}
$query = rtrim($query, ',');
$query .= ")";
$rez = $mysqli->query($query);
$users_cnt=$mysqli->affected_rows;
}
} while ($data = fgetcsv($handle, 1000, ",", "'"));
当我运行var_dump($users_cnt)
并假设我插入了3个新用户时,它会显示NULL
、NULL
、NULL
。但这不是一个我可以接受count
的数组。正如您所看到的,构建查询是因为它的结构依赖于一些动态数据,而这是插入用户时唯一可行的方法。如果你有什么建议,请帮忙。
我不明白你为什么不能这样做:
$count = 0
do {
if ($data[0]) {
//var_dump($data);
$query = "INSERT INTO `$tabela` (";
$last = end($anotherArray);
$numberOfValues=count($anotherArray);
if($numberOfValues==1){
$query.="$anotherArray[0])";
}else {
foreach ($anotherArray as $something) {
if ($something != $last) {
$query .= "" . $something . ",";
} else {
$query .= "" . $something . ")";
}
}
}
$query .= "VALUES (";
$lengtara = count($anotherArray);
$length1 = count($data);
foreach ($data as $d) {
$query .= "'$d',";
}
$query = rtrim($query, ',');
$query .= ")";
$rez = $mysqli->query($query);
$count++
$users_cnt=$mysqli->affected_rows;
}
} while ($data = fgetcsv($handle, 1000, ",", "'"));
然后只要在需要的地方输出$count
即可。