Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nie dopisuje wartości do pliku sql , to txt już tak
IceManSpy
post
Post #1





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam

Mam pewien, problem, który nie wiem jak rozwiązać. Rozbudowuję pewną klasę o swoje metody m. in. o zapis do pliku. Problem się właśnie pojawia tutaj. Chcę dodać na końcu pliku jakieś swoje dane, ale niestety zamiast dodawać, plik jest nadpisywany. Próbowałem na 2 sposoby:
  1. $current = file_get_contents($this->_fileName); // zmienna z nazwą pliku jest poprawna
  2. $current .= "Damian \n";
  3. $current .= "New liane";
  4. //$file_put_contents = file_put_contents($this->_fileName, $current, FILE_APPEND);
  5. $file_put_contents = file_put_contents($this->_fileName, $current.PHP_EOL, FILE_APPEND);

oraz:
  1. $fh = fopen('filename.sql', 'a') or die("can't open file");
  2. $stringData = "New Stuff 1\n";
  3. fwrite($fh, $stringData);
  4. $stringData = "New Stuff 2\n";
  5. fwrite($fh, $stringData);
  6. fclose($fh);


Żaden nie działa. Plik ma rozszerzenie sql. Ale jeśli zmienię go na inny, np txt, to już działa normalnie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
IceManSpy
post
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Tylko dziwne, bo skoro file_get_contents pobiera zawartość, to u mnie nie pobiera. o.O
  1. $current = file_get_contents($this->_fileName);
  2. echo "Po pobraniu: ".$current;
  3. $current .= "Damian \n";
  4. $current .= "New liane";
  5. echo "Po dopisaniu: ".$current;
  6. $file_put_contents = file_put_contents($this->_fileName, $current.PHP_EOL, FILE_APPEND);

Dostaję: Po pobraniu: Po dopisaniu: Damian New liane


Problem jest taki, że klasa po które dziedziczę wypluwa plik sql, a ja chcę go w swojej klasie otworzyć, dopisać kilka swoich linijek i zapisać go do tego samego pliku.

EDIT 1:
Ponadto jak robię rename pliku sql, to dostaję: Warning: rename(filename.sql,filename.txt) [function.rename]: Proces nie może uzyskać dostępu do pliku, ponieważ jest on używany przez inny proces. (code: 32)

Plik nie jest otwarty w żadnym innym programie.

EDIT 2:
Myślałem, że problem się rozwiązał jednak nie. Problem jest wtedy, kiedy klasa bazowa zapisze ten plik. Jak odpalę w swojej, to wtedy zawartość pliku jest nadpisywana.

Wystarczy, że zrobię file_get_contents i zawartość pliku robi się pusta.
EDIT 1 jest nadal aktualny.

W najgorszym przypadku zrobię klasę, która nie dziedziczy, ale będzie tworzyła wewnątrz siebie obiekt klasy, po której chciałbym dziedziczyć.

Ten post edytował IceManSpy 26.11.2011, 18:02:40
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 14:11