Uploaded image for project: 'S2Dao.PHP5'
  1. S2Dao.PHP5
  2. DAOPHP-4

MySQLにて select ... insert intoの実行にoutfileでファイル出力が行えない

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • S2Dao.PHP5-1.1.1
    • Affects Version/s: S2Dao.PHP5-1.1.0-RC4
    • Component/s: S2Dao.PHP5
    • None
    • Environment:
      s2container.php5-1.1.0
      s2dao.php5-1.1.0-rc3
      MySQL 4.1.20
      PHP 5.1.4

      Daoに下記の様に記述して、outputAll()を実行します。

          const outputAll_SQL = "select * into outfile 'path_to_output/out.txt'
          fields terminated by '\t' from some_table";
          public function outputAll();
      

      ここで、環境によって結果が異なることになりました。
      windows2000で実行してみたところ、問題なくファイル出力されます。
      FreeBSD4.7で実行したところ、下記のようにエラーとなりました。

      exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2053 ' in
      /usr/local/lib/php/S2Dao/S2Dao/S2Dao_BeanMetaDataResultSetHandler.class.php:14
      

      S2Dao_BasicSelectHandler#executeで、
      $stmt->columnCount() == 1
      以外の場合すべて
      return $this->resultSetHandler_->handle($stmt);
      としていますが、エラー時点でのcolumnCount()は0となっていますので、
      S2Dao_BeanMetaDataResultSetHandler#handleの頭に
      if($resultSet->columnCount() <= 0)

      { return null; }

      と付け加えると動いてはいるのですが・・・。

      よろしくお願いいたします。

            Assignee:
            nowel nowel
            Reporter:
            nowel nowel
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: