最近私はWebサーバーを移動しましたが、新しいWebサーバーには異なるバージョンのPHPがあります。PDOを使用してphp 5.5からLOAD DATA LOCAL INFILEが機能しない
新しいサーバ:PHP 5.5.3-1ubuntu2(CLI) 古いサーバ:PHP 5.3.10(CLI)
データベースサーバーでは、my.cnfファイルは、ローカル・INFILEを許可するように設定されています。 Iから負荷データをローカルINFILEを使用することができます。私はPDOとPHPを使用して、新しいWebサーバーから接続しようとすると、しかし、私が手
- HeidiSQL
- The command line client running on the new web server using --local-infile=1
- PHP, using PDO, from the old web server
: データベースの問題が発生しました:SQLSTATE [42000]:構文エラーまたはアクセス違反が:1148ザ・使用コマンドは、このMySQLバージョンでは使用できません
のphp.ini:
[MySQL]
; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
; http://php.net/mysql.allow_local_infile
mysql.allow_local_infile = On
PDOコンストラクタ:
$this->db_conn = new PDO("mysql:host=$host;dbname=$dbname;port=$port", $user, $pass, array(PDO::MYSQL_ATTR_LOCAL_INFILE => 1));
また、PHPスクリプトでini_set( 'mysql.allow_local_infile'、1)とini_set( 'mysql.allow_local_infile'、true)を試しました。
ファイルがデータベースサーバーではなくWebサーバーでホストされているため、LOCALキーワードが必要です。
他にPHP 5.5が私に求めているのは何ですか?
...私が知っているとあなたのMySQLバージョン解決doesntの場合は? – Hackerman
これは権限の問題である可能性がありますか?私が知る限り、PDOはこれに関して特別なことはしません。 – tadman
MySQLデータベース: readline 5.1を使用しているredhat-linux-gnu(x86_64)用のmysql Ver 14.14 Distrib 5.1.69。 CentOS 5でホストされています。 すべてのテストで同じユーザーとパスワードを使用していますので、MySQLのアクセス許可の問題ではありません。 PHPスクリプトはrootによって実行されます。 – NotEnoughGolds