Php 禁止Zend Pdo_Mysql加载数据

Php 禁止Zend Pdo_Mysql加载数据,php,zend-framework,pdo,zend-db,Php,Zend Framework,Pdo,Zend Db,我一直在寻找一种允许使用zend framework加载数据查询的解决方案,如: LOAD XML LOCAL INFILE '$dbFile' INTO TABLE mytable ROWS IDENTIFIED BY '<object>'; 但是,如果我输出查询并将其复制/粘贴到像HeidiSQL这样的编辑器中,查询就会工作。 我搜索了一个答案,发现我应该设置驱动程序选项PDO::MYSQL\u ATTR\u LOCAL\u infle,但它似乎不起作用 我想使用applica

我一直在寻找一种允许使用zend framework加载数据查询的解决方案,如:

LOAD XML LOCAL INFILE '$dbFile' INTO TABLE mytable ROWS IDENTIFIED BY '<object>';
但是,如果我输出查询并将其复制/粘贴到像HeidiSQL这样的编辑器中,查询就会工作。 我搜索了一个答案,发现我应该设置驱动程序选项PDO::MYSQL\u ATTR\u LOCAL\u infle,但它似乎不起作用

我想使用application.ini设置驱动程序选项:

resources.multidb.mydb.adapter = "Pdo_Mysql"
resources.multidb.mydb.dbname = "mydb"
resources.multidb.mydb.username = "myuser"
resources.multidb.mydb.password = "mypass"
resources.multidb.mydb.driver_options.PDO::MYSQL_ATTR_LOCAL_INFILE = true
resources.multidb.mydb.driver_options.1001 = true
我也尝试了以下方法,但得到了相同的错误:

$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', 'testing');
$dbParams = $config->resources->multidb->mydb->toArray();
$dbParams['driver_options'] = array(PDO::MYSQL_ATTR_LOCAL_INFILE => '1');
$db = Zend_Db::factory($config->resources->multidb->mydb->adapter, $dbParams);
我是不是忽略了什么?或者可能设置错误的选项?我还了解到,mysql必须使用--enable load data或其他工具进行编译,但是查询使用sql编辑器,因此它应该可以通过php工作。

我在Rend(Rapid Zend)框架中找到了一个本地填充的例子

基本上,该文件有一个用于PDO对象的类,并有如下方法:

/**
 * Set the local infile flag
 *
 * @param boolean $allowLocalInfile
 * @return Rend_Factory_Database_Pdo_Mysql
 */
public function setAllowLocalInfile($allowLocalInfile)
{
    $this->_options["driver_options"][PDO::MYSQL_ATTR_LOCAL_INFILE] = $allowLocalInfile;
    return $this;
}

我敢肯定,在该开源存储库中进行更多的浏览会发现一些解决问题的技巧。

您正在连接的用户的权限是什么?此外,服务器和客户端都可以通过.ini配置为不允许使用infle,因为这可能会带来安全风险:我正在使用本地wamp设置进行开发。我使用根用户进行连接,无需通过。所有设置都是默认设置。在连接HeidiSQL(执行加载数据)时,我使用相同的根用户。我发现关键字“LOCAL”是麻烦制造者,我不需要它。省略此关键字不再产生错误。它现在对我有效,但我仍然想知道如何启用“本地”。我想这一定是一个很琐碎的场景。
/**
 * Set the local infile flag
 *
 * @param boolean $allowLocalInfile
 * @return Rend_Factory_Database_Pdo_Mysql
 */
public function setAllowLocalInfile($allowLocalInfile)
{
    $this->_options["driver_options"][PDO::MYSQL_ATTR_LOCAL_INFILE] = $allowLocalInfile;
    return $this;
}