Heim > Backend-Entwicklung > PHP-Tutorial > 关于导入txt文件到数据库的有关问题

关于导入txt文件到数据库的有关问题

WBOY
Freigeben: 2016-06-13 13:12:26
Original
753 Leute haben es durchsucht

关于导入txt文件到数据库的问题
我们每天都会从amazon导出一些订单(txt文件),然后用PHP导入到数据库,

现在出现的问题就是:有些txt文件导入的时候总会有几条记录导不进去,但是单独提取出来(把导不进去的记录建一个文件)再导就能成功,每个txt文件大概1000条左右的记录,以下是PHP原代码,请各位大大帮我分析一下什么原因

还有请问可以查写入数据库失败的原因吗?可以的话怎么查

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
 
 $filepath=$_GET['uploadfile'];
echo $filepath;

require_once 'conn.php';
setlocale(LC_ALL, 'en_US.UTF-8');

error_reporting(E_ALL ^ E_NOTICE); 

$line=0;
$shipments=0;


$strSqla="SELECT MAX(number) FROM `sale_orders`";  //查询sale_orders表id字段最大值
$querya = mysql_query($strSqla,$conn); 
$resultaa= mysql_fetch_row($querya);
$maxnum=$resultaa[0];

$maxnum++;

$file = fopen($filepath,"r") or die("打开文件失败"); 

while (!feof($file)) { 

$buffer = fgets($file);

if ($line0)
{    


$u=explode('    ', trim($buffer));
if(!empty($u[0])){
  
$or_id=$u[0];
$or_it_id=$u[1];
$payments_date=$u[3];

$buyer_email=$u[7];
$buyer_name=$u[8];
$buyer_phone=$u[9];
$sku=$u[10];
$jj_sku=substr($sku,1,7);
$product_name=$u[11];
$quantity=$u[12];
$recipient_name=$u[16];
$ship_address1=$u[17];
$ship_address2=$u[18];
$ship_address3=$u[19];
$ship_state=$u[21];
$ship_postal=$u[22];
$ship_country=$u[23];

 
 $sql_detrde=" INSERT INTO `amazon_erp`.`sale_orders` (`number` ,`order_id` ,`order_item_id`,`shipments` ,`payments-date` ,`buyer-email` ,`buyer-name` ,`buyer-phone-number` ,`sku`,`jj_sku` ,`product-name` ,`quantity-purchased`,`recipient-name`,`ship-address-1`,`ship-address-2`,`ship-address-3`,`ship-state`,`ship-postal-code`,`ship-country`  )VALUES ('$maxnum','$or_id','$or_it_id',  '$shipments', '$payments_date','$buyer_email', '$buyer_name','$buyer_phone','$sku' ,'$jj_sku', '$product_name', '$quantity', '$recipient_name', '$ship_address1', '$ship_address2','$ship_address3','$ship_state' , '$ship_postal', '$ship_country')";   
 mysql_query($sql_detrde);   
 
 $myaf = mysql_affected_rows();
 
 if($myaf>0)
 {
echo "<br>import  $or_id   Success";
}
else
{
 echo "<br><font color="#FF0000">";
 echo "import   $or_id    Failure";
 echo "</font>";
 }

  
}
 } 
  $line++;
   
   }  
   

echo "<br>导入成功";
echo "<br>Possible file upload attack!\n";


echo '<script>window.open("labela_outputcsv.php?number='.$maxnum.'","_blank");</script>'; 
echo '<script>location.href="outputcsv.php?number='.$maxnum.'"</script>';


Nach dem Login kopieren


------解决方案--------------------
$myaf = mysql_affected_rows() or die(mysql_error());
------解决方案--------------------
唠叨别激动,他的语气应该不是质疑,而是疑惑不解


zhuhao你要把你的SQL语句做安全转义,把语句视作含有“\”来看待

要么全过程用unicode来操作
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage