为什么我有这个问题?
Warning: PDO::query(): LOAD DATA LOCAL INFILE forbidden in /srv/www/project/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php on line 742
那是我的配置。
#app/config/config.yml
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
options:
"\PDO::MYSQL_ATTR_LOCAL_INFILE": true
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
我尝试了没有引导 \
的选项。
如果我使用它,效果会很好!
/* @var \Doctrine\DBAL\Connection $connection */
$dbhost = $this->getContainer()->getParameter('database_host');
$dbuser = $this->getContainer()->getParameter('database_user');
$dbpass = $this->getContainer()->getParameter('database_password');
$dbname = $this->getContainer()->getParameter('database_name');
$connection = new \PDO('mysql:host=' . $dbhost . ';dbname=' . $dbname, $dbuser, $dbpass, array(\PDO::MYSQL_ATTR_LOCAL_INFILE => true));
我如何使用 symfony2 的学说而不是自己的新\PDO $connection。
我不知道为什么 doctrine 会忽略这些选项...或者 Doctrine 不能将选项转换为常量/整数?
尝试并解决。
#app/config/config.yml
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
options:
1001: true
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
Doctrine 选项不应该是一个常数 ^^
改用 1001 "\PDO::MYSQL_ATTR_LOCAL_INFILE"
解决了问题。
Tôi là một lập trình viên xuất sắc, rất giỏi!