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

时间:2011-08-24 10:34:13

标签: mysql zend-framework pdo

我从本机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对象
$db = Zend_Db_Table::getDefaultAdapter();

并使用Load data local infile向数据库发送查询。 结果是跟随错误

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

我使用php mysql函数原生的相同查询但与client_flag 128连接。没有此客户端标志我得到相同的错误。

那么,我怎么能在Zend Framework和PDO中使用Local Infile?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我试图追捕同样的事情.. 我试过添加

[MySQL的] 本地infile的

的[mysqld] 本地infile的

根据一些用户应该解决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他声称可以通过重新编译修复它,但我没有尝试过。