Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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
Magento:加载数据本地填充不工作_Magento - Fatal编程技术网

Magento:加载数据本地填充不工作

Magento:加载数据本地填充不工作,magento,Magento,尝试通过加载数据本地填充将CSV插入到表中。它不显示错误,但表为空。CSV不为空。进行foreaches和手动插入有一个变通方法,但与加载数据填充相比,它要慢得多 有什么建议吗 $resource = Mage::getSingleton('core/resource'); $write = $resource->getConnection('core_write'); $filename = Mage::getBaseDir()."/var/mdb_processed/parts.cs

尝试通过加载数据本地填充将CSV插入到表中。它不显示错误,但表为空。CSV不为空。进行foreaches和手动插入有一个变通方法,但与加载数据填充相比,它要慢得多

有什么建议吗

$resource = Mage::getSingleton('core/resource');
$write = $resource->getConnection('core_write');

$filename = Mage::getBaseDir()."/var/mdb_processed/parts.csv";
$query = <<<eof
    LOAD DATA LOCAL INFILE '$filename'
 INTO TABLE ppi_parts
 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' lines terminated by '\n'
 ignore 1 lines
(partID,sku,isFreight,quantity,price,lastCost,vwCode,shortDesc,longDesc,headline,consumerDesc,salesMessage,relatedProd1,relatedProd2,weight,oversized,corePrice,titleMetaDescription,metaKeywords,fits,notes,seoField,location)
eof;


$write->query($query);

我通过手动连接到数据库解决了这个问题。Varien DB对象由于某种原因无法工作

要创建手动连接,我必须执行以下操作:

$local = simplexml_load_file( Mage::getBaseDir()."/app/etc/local.xml");

$connection = $local->global->resources->default_setup->connection;
$filename = Mage::getBaseDir()."/var/mdb_processed/parts.csv";

$link = mysql_connect($connection->host,$connection->username,$connection->password);
mysql_select_db($connection->dbname, $link) or die('Could not select database.');
然后:


工作正常。

或此版本的PDO:

$options = array(PDO::MYSQL_ATTR_LOCAL_INFILE => true);
$local = simplexml_load_file(Mage::getBaseDir() . "/app/etc/local.xml");
$connection = $local->global->resources->default_setup->connection;
$pdoDb = new PDO(
    "mysql:host={$connection->host};dbname={$connection->dbname}", 
    $connection->username, 
    $connection->password, 
    $options
    );

$path_to_datafile = Mage::getBaseDir()."/var/mdb_processed/parts.csv";

$sql = "LOAD DATA LOCAL INFILE '{$path_to_datafile}'
        REPLACE INTO TABLE ppi_parts
        FIELDS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '\"' 
        LINES TERMINATED BY '\\n'
        IGNORE 1 LINES;";

$result = $pdoDb()->exec($sql);
$options = array(PDO::MYSQL_ATTR_LOCAL_INFILE => true);
$local = simplexml_load_file(Mage::getBaseDir() . "/app/etc/local.xml");
$connection = $local->global->resources->default_setup->connection;
$pdoDb = new PDO(
    "mysql:host={$connection->host};dbname={$connection->dbname}", 
    $connection->username, 
    $connection->password, 
    $options
    );

$path_to_datafile = Mage::getBaseDir()."/var/mdb_processed/parts.csv";

$sql = "LOAD DATA LOCAL INFILE '{$path_to_datafile}'
        REPLACE INTO TABLE ppi_parts
        FIELDS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '\"' 
        LINES TERMINATED BY '\\n'
        IGNORE 1 LINES;";

$result = $pdoDb()->exec($sql);