Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CSV到Mysql数据库_Php_Mysql_Csv_Pdo_Ftp - Fatal编程技术网

Php CSV到Mysql数据库

Php CSV到Mysql数据库,php,mysql,csv,pdo,ftp,Php,Mysql,Csv,Pdo,Ftp,在这里,我想将记录从csv插入mysql数据库,但结果为空。 我有csv在mysql中插入记录,但结果为空。 在这里,当我要运行这个文件时,它显示为空白。 问题在哪里 import.php: function connect() { $host = 'localhost'; $db_name = 'test'; $db_user = 'abc'; $db_password = '1234'; return new PDO('mysql:host='.$ho

在这里,我想将记录从csv插入mysql数据库,但结果为空。 我有csv在mysql中插入记录,但结果为空。 在这里,当我要运行这个文件时,它显示为空白。 问题在哪里

import.php:

function connect() {
    $host = 'localhost';
    $db_name = 'test';
    $db_user = 'abc';
    $db_password = '1234';
    return new PDO('mysql:host='.$host.';dbname='.$db_name, $db_user, $db_password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}

$pdo = connect();

$ftp_server= "ftp.com";
$euuser = "ftpusername";
$eupassword = "ftppwd";

$conn_id = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login_result = ftp_login($conn_id, $euuser, $eupassword);
$path=ftp_pwd($conn_id)."magento_prd/orderitems100050284.csv";

//echo "hello".$conn_id;
//exit;
$contents = ftp_nlist($conn_id, $path);

foreach ($contents as $file)
{

  echo "<br>$file";
}
ftp_close($conn_id);

//exit;
//echo "hello";exit;
function insert_read_file($file){
$csv_file =$file;

    if (is_file($csv_file)) {

         if ($_FILES['csv_file']['size'] <= 0) {

            $errorMsg.="Please select tab delimited .txt";
            die();

        } else {
            $upload_file_extension = strtolower(end(explode('.', $file)));

            if (strtolower($upload_file_extension) != 'txt') {
                echo "not txt file";
                die();
            }
        }
        $column=Array ('Full Name','Source','Order ReferenceNum','Postal Service Name','Tracking Number','SourceUserName' ,'Phone Number');

        if (($input = fopen($csv_file, "r")) !== FALSE) {
            $row = fgetcsv($input, 1024, ','); 
            $re=array_diff($column,$row);
            if(sizeof($re)!=0)
            {
                $errorMsg='csv not matched';
            }    
            if(sizeof($row)==1){
                $errorMsg='csv is blank';
            }
            $count = 0;
            while (($row = fgetcsv($input)) !== FALSE) {
                //print_r($row);
                echo "</br>";

                $sql = 'INSERT INTO tbl_order_details(order_id, orderdet_productsku, orderdet_iscase, orderdet_qty, item_sold_price) VALUES'
                        . '(:order_id, :orderdet_productsku, :orderdet_iscase, :orderdet_qty, :item_sold_price)';

                        $query = $pdo->prepare($sql);
                        $query->bindParam(':order_id', $row[0],PDO::PARAM_STR);
                        $query->bindParam(':orderdet_productsku', $row[1],PDO::PARAM_STR);
                        $query->bindParam(':orderdet_iscase',$row[2], PDO::PARAM_STR);
                        $query->bindParam(':orderdet_qty', $row[3],PDO::PARAM_STR);
                        $query->bindParam(':item_sold_price', $row[4],PDO::PARAM_STR);

                        $query->execute();

                $count++;
            }
        }
    }
    else {
         $errorMsg='not csv';
    }
}
函数连接(){
$host='localhost';
$db_name='test';
$db_user='abc';
$db_password='1234';
返回新的PDO('mysql:host='.$host.';dbname='.$db_name,$db_user,$db_password,数组(PDO::ATTR_ERRMODE=>PDO::ERRMODE_异常,PDO::mysql_ATTR_INIT_命令=>“SET NAMES utf8”);
}
$pdo=connect();
$ftp\u server=“ftp.com”;
$euuser=“ftpusername”;
$eupassword=“ftppwd”;
$conn_id=ftp_connect($ftp_server)或die(“无法连接到$ftp_server”);
$login\u result=ftp\u login($conn\u id、$euuser、$eupassword);
$path=ftp\u pwd($conn\u id)。“magento\u prd/orderitems100050284.csv”;
//回声“你好”。$conn_id;
//退出;
$contents=ftp\u nlist($conn\u id,$path);
foreach($file形式的内容)
{
回显“
$file”; } ftp_关闭($conn_id); //退出; //回音“你好”;出口 函数insert\u read\u file($file){ $csv_file=$file; if(is_文件($csv_文件)){ 如果($\u文件['csv\u文件]['size']准备($sql); $query->bindParam(':order_id',$row[0],PDO::PARAM_STR); $query->bindParam(':orderdet_productsku',$row[1],PDO::PARAM_STR); $query->bindParam(':orderdet_iscase',$row[2],PDO::PARAM_STR); $query->bindParam(':orderdet_qty',$row[3],PDO::PARAM_STR); $query->bindParam(':item_salled_price',$row[4],PDO::PARAM_STR); $query->execute(); $count++; } } } 否则{ $errorMsg='not csv'; } }
只需更改行:

$sql = 'INSERT INTO tbl_order_details(order_id, orderdet_productsku, orderdet_iscase, orderdet_qty, item_sold_price) VALUES'
   . '(:order_id, :orderdet_productsku, :orderdet_iscase, :orderdet_qty, :item_sold_price)';
至以下代码:

$sql = 'INSERT INTO tbl_order_details ( order_id, orderdet_productsku, orderdet_iscase, orderdet_qty, item_sold_price) 
        VALUES(:order_id,:orderdet_productsku,:orderdet_iscase,:orderdet_qty,:item_sold_price)';
注意:无需在
值之前使用
(.)句点

更好地使用,如:

$sql = 'INSERT INTO tbl_order_details SET order_id = :order_id,
        orderdet_productsku = :orderdet_productsku, orderdet_iscase = :orderdet_iscase, 
        orderdet_qty = :orderdet_qty, item_sold_price = :item_sold_price';

在insert语句之前,请尝试显示值。检查是否设置了值,