Я искал решение, позволяющее загружать запросы данных с помощью Zend Framework, например:
LOAD XML LOCAL INFILE '$dbFile' INTO TABLE mytable ROWS IDENTIFIED BY '<object>';
Когда я пытаюсь выполнить этот запрос, я получаю следующую ошибку:
Warning: PDO::exec() [pdo.exec]: LOAD DATA LOCAL INFILE forbidden
Однако, если я выведу запрос и скопирую / вставлю его в редактор, такой как HeidiSQL, запрос сработает.Я искал ответ и обнаружил, что должен установить параметр драйвера PDO :: MYSQL_ATTR_LOCAL_INFILE , но он не работает.
Я бы хотел использовать 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.