Niedawno przeniosłem serwery sieciowe, a nowy serwer WWW ma inną wersję PHP.LOKALNA INFILE DANYCH DANYCH nie działa z poziomu PHP 5.5 przy użyciu PDO
Nowy serwer: PHP 5.5.3-1ubuntu2 (CLI) starego serwera: PHP 5.3.10 (CLI)
na serwerze bazy danych, my.cnf jest ustawiony, aby umożliwić local-plik_we. mogę używać danych Load lokalnej plik_we od:
- HeidiSQL
- The command line client running on the new web server using --local-infile=1
- PHP, using PDO, from the old web server
jednak, gdy próbuję się połączyć z nowym serwerem WWW za pomocą PHP z PDO, otrzymuję: Problem bazy danych wystąpiły: SQLSTATE [42000]: Składnia błąd lub dostępu naruszenie: 1148 Zastosowana komenda nie jest dozwolona w tej wersji 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 konstruktor:
$this->db_conn = new PDO("mysql:host=$host;dbname=$dbname;port=$port", $user, $pass, array(PDO::MYSQL_ATTR_LOCAL_INFILE => 1));
Próbowałem również ini_set ('mysql.allow_local_infile', 1) i ini_set ('mysql.allow_local_infile', true) w skrypcie PHP.
Słowo kluczowe LOCAL jest potrzebne, ponieważ pliki są hostowane na serwerze WWW, a nie na serwerze bazy danych.
Co jeszcze PHP 5.5 chce ode mnie?
i twój MySQL w wersji ?? – Hackerman
Czy może to być problem z uprawnieniami? CHNP nie robi nic szczególnego w tym zakresie, o ile wiem. – tadman
Baza danych MySQL: mysql Ver 14.14 Distrib 5.1.69 dla redhat-linux-gnu (x86_64) za pomocą readline 5.1. Hostowany na CentOS 5. Używam tego samego użytkownika i hasła we wszystkich testach, więc nie powinien to być problem z uprawnieniami MySQL. Skrypt PHP jest wykonywany przez root. – NotEnoughGolds