php-将CSV导入MySql,如果重复,则更新所选值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-将CSV导入MySql,如果重复,则更新所选值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2096字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试将一个csv文件导入到mysql-databse中,并且我希望uploadscript检查重复项,如果发现有任何重复,则应该更新该行,但只能更新选定的值.我希望它更新除“首次看到”以外的所有值. bssid是我唯一的标识.我也得到一些建议,我应该将“ addslashes”更改为一些更好的代码,但是我不知道哪种方法是最好的做法,有什么建议吗?
<?php
//Count ap′s before import
$before = mysql_query("SELECT * FROM wifi");
$num_rows_before = mysql_num_rows($before);
if ($_FILES[csv][size] > 0) {
//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data[0]) {
$linesCount ++;
mysql_query("INSERT INTO wifi (bssid, channel, privacy, ciper, auth, power, essid, latitude, longitude, first_seen, last_seen) VALUES
(
'".addslashes($data[0])."',
'".addslashes($data[1])."',
'".addslashes($data[2])."',
'".addslashes($data[3])."',
'".addslashes($data[4])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."',
'".addslashes($data[7])."',
'".addslashes($data[8])."',
'".addslashes($data[9])."',
'".addslashes($data[10])."'
)
");
}
} while ($data = fgetcsv($handle,1000,","));
//redirect
header('Location: index.php/ladda-upp?success=1&before=' . $num_rows_before); die;
}
//Catch argument from url
$arg_bef=$_GET['before'];
//Count ap′s after import
$after = mysql_query("SELECT * FROM wifi");
$num_rows_after = mysql_num_rows($after);
//Count new rows
$new_rows = $num_rows_after - $arg_bef;
//generic success notice
if (!empty($_GET[success])) { echo "<br><b>Resultat: Din fil har blivit importerad!</b><br><br>";
//echo stats
echo "Antal f?re import - ";
echo "$arg_bef";
echo "<br>";
echo "Antal efter import - ";
echo "$num_rows_after";
echo "<br>";
echo "Antal nya rader - ";
echo "$new_rows";
echo "<br>";
echo "Rader i CSV-fil - ";
}
//Close connection to databse
mysql_close($connect) ;
?>
解决方法:
您想要mysql的重复键功能
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
确保在CSV中显示的字段上设置了密钥,例如:bssid可能有效.
不用addslashes()来使用mysql_real_escape_string(),但是毫无疑问,有人会指出mysql_函数已被弃用,并将很快被删除,因此您至少应使用mysqli.
内容总结
以上是互联网集市为您收集整理的php-将CSV导入MySql,如果重复,则更新所选值全部内容,希望文章能够帮你解决php-将CSV导入MySql,如果重复,则更新所选值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。