[PHP-users 29548] Re: PDO::prepareの疑問符パラメータの挙動に関して

Eishi Kuroda kuroda @ jetsetrecords.net
2006年 6月 30日 (金) 17:03:10 JST


黒田です。

> > <?php
> >     $db = null;
> >     $dsn = 'mysql:dbname=test;host=localhost';
> >     $user = 'root';
> >     $password = 'test';
> >     $db = new PDO($dsn, $user, $password);
> >     $sql = "select * into outfile ? fields terminated by '\t' from testtable";
> >     $stmt = $db->prepare($sql);
> >     var_dump($stmt);
> >     $stmt->execute(array("/tmp.txt"));
> >  ?>
> 
> 出力先が /tmp.txt になっていますがこれはここに載せるために書き換えました
> か?
> into outfile は MySQL の動作している User の権限(mysql?)で書き込みます
> ので / ディレクトリには書き込みできないかもしれないです。
> #って、それでも prepare では失敗しないかな…。


すみません。出力先は確かに書き換えてます。
問題はprepareの時点なので、という訳で・・・。
実際はmysqlのユーザのfile権限のあるディレクトリに出力しています。

> あとは PDO のソース見たほうが早いかも…

そうですね・・・。
もう少し調べてみます。

あとは、windows版のバイナリに入っているpdoよりも、
phpをソースからインストールしたFreeBSD上の
sharedで入っているpdoのバージョンが古いとか、そんなことかも知れないと思い、
一応pdoとpdo_mysqlについては最新のものを拾ってきて
再度インストールしてみたのですが、やっぱり無理でした。
どなたか、windows以外の環境で
select * into outfile ? fields from testtable
を実行してみた方はおられないしょうか?

黒田映史


PHP-users メーリングリストの案内