繁体   English   中英

使用Zend Framework和PDO适配器加载数据本地文件

[英]Load Data Local Infile with Zend Framework and PDO Adapter

我从本机PHP切换到Zend Framework,并且需要一个脚本来将数据本地加载Infile到单独服务器上的数据库。

我将application.ini更改为

resources.db.adapter = "Pdo_Mysql"
resources.db.params.host ="xxx.xxx.xxx.xxx" 
resources.db.params.username = "yyyyyyy"
resources.db.params.password = "zzzzzzz"
resources.db.params.dbname = "xyxyxyxy"
resources.db.params.charset = utf8
resources.db.params.driver_options.PDO::MYSQL_ATTR_LOCAL_INFILE=1;
resources.db.isDefaultTableAdapter = true

并尝试

resources.db.params.driver_options.1001=1;

太。

我通过创建数据库对象

$db = Zend_Db_Table::getDefaultAdapter();

并使用“将数据本地文件加载到数据库”向数据库发送查询。 结果错误

Message: SQLSTATE[42000]: Syntax error or access violation: 1148 The used command is not allowed with this MySQL version 

我通过php mysql函数使用相同的本机查询,但与client_flag 128连接。如果没有此client标志,我将得到相同的错误。

那么,我如何在Zend Framework和PDO中使用Local Infile?

resources.db.params.driver_options.1001 = true;

应该工作,您不能在application.ini中使用CONSTANTS。 请尝试使用“ true”而不是“ 1”

我试图寻找同样的东西..我试图添加

[mysql]本地文件

[mysqld]本地文件

根据一些用户(但不是我),这应该可以解决ubuntu 12.04上的问题,但也有一个php bug,但是应该在很久以前就解决了: https//bugs.php.net/bug.php?id = 54158

阅读这篇文章: http : //dev.mysql.com/doc/refman/5.1/en/load-data-local.html#c3237他声称可以通过重新编译来解决,但我没有尝试过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM