【问题标题】:Load Data Local Infile with Zend Framework and PDO Adapter使用 Zend 框架和 PDO 适配器加载数据本地 Infile
【发布时间】:2011-11-02 16:38:55
【问题描述】:

我正在从原生 PHP 切换到 Zend Framework,并且需要一个脚本来执行 Load Data Local 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 连接。没有这个客户端标志,我得到同样的错误。

那么,我如何将 Local Infile 与 Zend Framework 和 PDO 一起使用?

【问题讨论】:

    标签: mysql zend-framework pdo


    【解决方案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 他声称可以通过重新编译来修复它,但我没有尝试过。

    【讨论】:

      【解决方案2】:
      resources.db.params.driver_options.1001 = true;
      

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

      【讨论】:

      • 注意:以下值为真值:nullnofalse 导致 ""yestrue 导致 "1"。 (来自parse_ini_file
      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      相关资源
      最近更新 更多