Php 将多条记录插入mysql和mysql\u受影响的\u行()
我正在从表单上传csv。我正在尝试使用mysql受影响的行来确定它是否成功。数据正在上载到表中,但受mysql\u影响的\u行的计算结果不为true。请帮助:Php 将多条记录插入mysql和mysql\u受影响的\u行(),php,mysql,Php,Mysql,我正在从表单上传csv。我正在尝试使用mysql受影响的行来确定它是否成功。数据正在上载到表中,但受mysql\u影响的\u行的计算结果不为true。请帮助: <?php session_start(); $idnewtest1 = $_GET['idnewtest1']; move_uploaded_file($_FILES["fileCSV"]["tmp_name"], "quiz/" . $_FILES["fileCSV"]["name"]); $
<?php
session_start();
$idnewtest1 = $_GET['idnewtest1'];
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],
"quiz/" . $_FILES["fileCSV"]["name"]);
$objConnect = mysql_connect("localhost","root","...") or die(mysql_error()); // Conect to MySQL
$objDB = mysql_select_db("testing");
$objCSV = fopen("quiz/".$_FILES["fileCSV"]["name"], "r");
fgetcsv($objCSV, 1000, ","); // skip first row
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO ex_question1 ";
$strSQL .="(id,test_name,q_nr,....) ";
$strSQL .="VALUES ";
$strSQL .="('0','".$idnewtest1."','".$objArr[0]."'....) ";
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
if (mysql_affected_rows() > 1) {
echo "Import completed.";
}
?>
通过while循环处理多个事务,因此多个insert语句,
每个返回1到mysql\u受影响的\u行()
第二件事是,每次mysql\u impact\u row()返回1时,函数out-side while循环和条件>1都不会满足bcz…有多个事务正在通过while循环处理,所以多个insert语句,
每个返回1到mysql\u受影响的\u行()
当循环和条件>1时,第二件事是每次mysql\u infected\u row()返回1时都不满足bcz…Do:
<?php
$affectedRows = 0;
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO ex_question1 ";
$strSQL .="(id,test_name,q_nr,....) ";
$strSQL .="VALUES ";
$strSQL .="('0','".$idnewtest1."','".$objArr[0]."'....) ";
$objQuery = mysql_query($strSQL);
$affectedRows +=mysql_affected_rows();
}
fclose($objCSV);
if ($affectedRows > 1) {
echo "Import completed.";
}
?>
做:
您可以使用此INSERT
查询
INSERT INTO ex_question1
(id,test_name,q_nr,....)
VALUES (...............),
(...............),
(...............),
(...............);
这将一次性插入所有行您可以使用此插入
查询
INSERT INTO ex_question1
(id,test_name,q_nr,....)
VALUES (...............),
(...............),
(...............),
(...............);
这将一次性插入所有行