我从本机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?
答案 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他声称可以通过重新编译修复它,但我没有尝试过。