fgetcsv 按 $fileop 顺序插入值
fgetcsv insert values order by $fileop
我有一个包含 3 列的 CSV 文件 lastname, firstname, matricule 我想按照 matricule[ 的顺序导入它们=15=]
目前我有这个工作 PHP 代码:
$query = "TRUNCATE TABLE `personnal` ";
$result = mysql_query($query);
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
while (($fileop = fgetcsv($handle, 1000, ";")) !== false) {
$lastname = $fileop[0];
$firstname = $fileop[1];
$matricule = $fileop[2];
$sql = mysql_query("INSERT INTO personnal (lastname,firstname,matricule,usermaj) VALUES ('$lastname','$firstname','$matricule','importCSV')");
}
我尝试添加 ORDER BY $matricule
但它太容易工作了。
$sql = mysql_query("INSERT INTO personnal (lastname,firstname,matricule,usermaj) VALUES ('$lastname','$firstname','$matricule','importCSV') ORDER BY '$matricule'");
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY' at line 1(errno)
我们每周都会导入这种 CSV 文件,我需要让自动 AI id 始终保持相同。 X 先生不能是一个星期 id=61 而下一个星期 id=63。
如果在输入过程中 ORDER BY '$matricule'
是可能的,它应该可以解决我的问题。否则我必须在将其转换为 CSV 时手动执行此操作。
我终于想到像 MD5 这样的唯一 ID 是最好的。我还需要历史,所以我删除了 TRUNCATE table
解法:
$personnal_id = md5($lastname.$fistname);
$resultpersonnal_id = mysql_query("SELECT COUNT(*) AS number FROM personnal WHERE personnal_id='$personnal_id'");
$number=mysql_result($resultpersonnal_id, 0, 'number');
if ($number == 0) {
$sql = mysql_query("INSERT INTO personnal (personnal_id,lastname,firstname,matricule,usermaj) VALUES ('$personnal_id','$lastname','$firstname','$matricule','importCSV')");
}
我有一个包含 3 列的 CSV 文件 lastname, firstname, matricule 我想按照 matricule[ 的顺序导入它们=15=]
目前我有这个工作 PHP 代码:
$query = "TRUNCATE TABLE `personnal` ";
$result = mysql_query($query);
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
while (($fileop = fgetcsv($handle, 1000, ";")) !== false) {
$lastname = $fileop[0];
$firstname = $fileop[1];
$matricule = $fileop[2];
$sql = mysql_query("INSERT INTO personnal (lastname,firstname,matricule,usermaj) VALUES ('$lastname','$firstname','$matricule','importCSV')");
}
我尝试添加 ORDER BY $matricule
但它太容易工作了。
$sql = mysql_query("INSERT INTO personnal (lastname,firstname,matricule,usermaj) VALUES ('$lastname','$firstname','$matricule','importCSV') ORDER BY '$matricule'");
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY' at line 1(errno)
我们每周都会导入这种 CSV 文件,我需要让自动 AI id 始终保持相同。 X 先生不能是一个星期 id=61 而下一个星期 id=63。
如果在输入过程中 ORDER BY '$matricule'
是可能的,它应该可以解决我的问题。否则我必须在将其转换为 CSV 时手动执行此操作。
我终于想到像 MD5 这样的唯一 ID 是最好的。我还需要历史,所以我删除了 TRUNCATE table
解法:
$personnal_id = md5($lastname.$fistname);
$resultpersonnal_id = mysql_query("SELECT COUNT(*) AS number FROM personnal WHERE personnal_id='$personnal_id'");
$number=mysql_result($resultpersonnal_id, 0, 'number');
if ($number == 0) {
$sql = mysql_query("INSERT INTO personnal (personnal_id,lastname,firstname,matricule,usermaj) VALUES ('$personnal_id','$lastname','$firstname','$matricule','importCSV')");
}