Rumah > pembangunan bahagian belakang > tutorial php > 关于导入txt文件到数据库的有关问题

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

WBOY
Lepaskan: 2016-06-13 13:12:26
asal
753 orang telah melayarinya

关于导入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>';


Salin selepas log masuk


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


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

要么全过程用unicode来操作
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan