Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nie dopisuje wartości do pliku sql , to txt już tak
IceManSpy
post 26.11.2011, 16:56:46
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 (1 - 4)
skowron-line
post 26.11.2011, 17:02:07
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Tak na odwal się to http://pl2.php.net/manual/en/function.rename.php


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
IceManSpy
post 26.11.2011, 17:03:04
Post #3





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

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


To zostawię jako ostateczność, a nie ma innego sposobu?


--------------------
Go to the top of the page
+Quote Post
skowron-line
post 26.11.2011, 17:08:08
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


A w 1 przykładzie to co $current pokazuje questionmark.gif


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
IceManSpy
post 26.11.2011, 17:11:55
Post #5





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

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:08