Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Parse error: syntax error, unexpected end of file - błąd - prośba o pomoc, Dopisanie nowego rekordu do bazy MySQL - php błąd- prośba o pomoc
VitStwosz
post 13.12.2015, 21:44:46
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.12.2015

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


Witam
Jestem tu nowy zdaje sobie sprwę że moje pytanie może być banalne, ale dla mnie nie jest.
Mam prostą bazę danych stworzoną SQl-em:

CREATE DATABASE baza_filmow;
CREATE TABLE filmy (
ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID),
tytul VARCHAR(35),
rezyser VARCHAR(35),
czas INT);
INSERT INTO filmy VALUES (NULL, "Pan Tadeusz","A.Wajda",207);
INSERT INTO filmy VALUES (NULL, "Matrix","A.Wachowski", 196);
INSERT INTO filmy VALUES (NULL, "Shrek", "A.Adamson", 150);

mam też dodanego użytkownika klient z pełnymi prawami do baza_filmow
,chcę dopisać jeden rekord do bazy za pomocą poniższego kodu PHP:

<?php

$do_bazy = mysql_connect('localhost','klient','fanfilmow');

if(! $do_bazy) {

exit ("Bład połaczenia z serwerem MySQL.");

}

if (!mysql_select_db('baza_filmow')) {

mysql_close();

exit ("Błąd podczas wyboru bazy baza_filmow');

}

$dodaj = INSERT INTO filmy VALUES (NULL, 'Ziemia obiecana','A.Wajda',190);

if(!$zapytanie = mysql_query($dodaj)) {

mysql_close();

exit('Błąd w zapytaniu');

}

$ile = mysql_affected_rows();

echo 'Liczba dodanych rekordów do tabeli filmy wynosi:' $ile<br/>;

mysql_close();

?>


Wywala mi błąd:

Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\listing_H_7_120_a.php on line 35

próbowałem już wszysytkiego (tak mi się przynajmniej wydaje) i ręce mi opadły


I druga rzecz próbowałem zrobić to innym sposobem wykorzystując metodę POST

man dwa pliki z których jeden przekazuje dane do drugiego a ten ma wpisać je do bazy
formularz - form_film.php poniżej:

<! DOCTYPE HTML>

<html>

<head>

<title> Dodawanie filmu</title>

<meta http-equiv="Content-type" content="text/html; charset=UTF-8">

</head>

<body>

<form action="http://localhost/dodaj_film.php" method="post">

<p><b><font size="4"><b>Dodawanie filmu:</font></b></p>

Tytuł:</br>

<input type="text" name="tytul" value="" size="30"><br>

Reżyser:</br>

<input type="text" name="rezyser" value="" size="30"<br>

Czas:</br>

<input type="text" name="czas" value="" size="30"<br>

<p><input type="submit" value="Wyślij" name=wyslij">

<input type="reset" value="Wyczyść" name="zeruj"></p>

</form>


</body>

</html>

do tego drugi skrypt - dodaj_film.php


<?php

$do_bazy = mysql_connect('localhost','klient','fanfilmow');

if(! $do_bazy) {

exit ("Błąd połaczenia z serwerem MySQL.");

}

if (!mysql_select_db('baza_filmow')) {

mysql_close();

exit ("Błąd podczas wyboru bazy baza_filmow');

}

$dodaj = INSERT INTO filmy VALUES(NULL, '$_POST['tytul']','$_POST['rezyser']','$_POST['czas']');


$zapytanie=mysql_query($dodaj);


if(!$zapytanie == true) {

echo "Nowy klient został dodany do bazy.";

}

else {

echo "Nowy klient nie został dodany do bazy.";

}

mysql_close();


?>


tutaj uzyskuje błąd:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\dodaj_film.php on line 19


Bardzo proszę o pomoc

VitStwosz













Go to the top of the page
+Quote Post
nospor
post 13.12.2015, 22:05:54
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Uzywaj BBCODE
2) Zapytania to teksty... teksty w php bierze sie w apostrofy lub cudzyslowia...
nie $zm = ZAPYTANIE
a $zm = 'ZAPYTANIE'
lub $zm="ZAPYTANIE"



--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
VitStwosz
post 15.12.2015, 22:29:22
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.12.2015

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


Niestety próbowałem już tego przed zamieszczeniem tego posta efekt:

Dotyczy przykładu drugiego (dwa pliki z metodą post)

jeżeli piszę:

$dodaj="INSERT INTO filmy VALUES(NULL, '$_POST['tytul']','$_POST['rezyser']','$_POST['czas']')";

mam błąd:
Parse error: syntax error, unexpected 'INSERT' (T_STRING) in C:\xampp\htdocs\dodaj_film.php on line 19


jeżeli piszę:

$dodaj='INSERT INTO filmy VALUES(NULL, '$_POST['tytul']','$_POST['rezyser']','$_POST['czas']')';

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\dodaj_film.php on line 19


*******************************

W poprzednim poście dodałem też pytanie dot. poniższego kodu - przykład pierwszy - jeden plik - był na początku ale kolega chyba go nie zauważył):

CREATE DATABASE baza_filmow;
CREATE TABLE filmy (
ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID),
tytul VARCHAR(35),
rezyser VARCHAR(35),
czas INT);
INSERT INTO filmy VALUES (NULL, "Pan Tadeusz","A.Wajda",207);
INSERT INTO filmy VALUES (NULL, "Matrix","A.Wachowski", 196);
INSERT INTO filmy VALUES (NULL, "Shrek", "A.Adamson", 150);

mam też dodanego użytkownika klient z pełnymi prawami do baza_filmow
,chcę dopisać jeden rekord do bazy za pomocą poniższego kodu PHP:

<?php

$do_bazy = mysql_connect('localhost','klient','fanfilmow');

if(! $do_bazy) {

exit ("Bład połaczenia z serwerem MySQL.");

}

if (!mysql_select_db('baza_filmow')) {

mysql_close();

exit ("Błąd podczas wyboru bazy baza_filmow');

}

$dodaj = INSERT INTO filmy VALUES (NULL, 'Ziemia obiecana','A.Wajda',190);

if(!$zapytanie = mysql_query($dodaj)) {

mysql_close();

exit('Błąd w zapytaniu');

}

$ile = mysql_affected_rows();

echo 'Liczba dodanych rekordów do tabeli filmy wynosi:' $ile<br/>;

mysql_close();

?>


Wywala mi błąd:

Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\listing_H_7_120_a.php on line 35

czyli jest to błąd przed znacznikiem ?>

Wszystkie klamry przeliczyłem jest w porządku

Reasumując jest dalej to samo............ i dalej proszę o pomoc


Vit Swosz








Go to the top of the page
+Quote Post
nospor
post 15.12.2015, 22:32:43
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ale kolega chyba go nie zauważył):
A kolega chyba nie zauwazyl iz prosilem bys uzywal BBCODE!


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
VitStwosz
post 16.12.2015, 10:57:05
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.12.2015

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


Dziękuję za dotychczasowe zainteresowanie, przepraszam ale poruszam się jeszcze trochę po omacku po forum a z BBCode jeszcze nie korzystałem, myślałem że problem jest prostszy do rozwiązania,
po prostu zależy mi trochę na czasie, jeżeli nie uzyskam w tej chwili pomocy, to trudno. Natomiast zamieszczanie czystego tekstu nie jest z mojej strony świadomą złośliwością po prostu trochę zewnętrzne
okoliczności mnie zmusiły do pójścia na skróty.

Pozdrawiam

VitStwosz



Witam ponownie

Zapisałem swój przykład przy użyciu BBCode (mam nadzieję że poprawnie)

Mam prostą bazę danych stworzoną SQl-em:


  1. CREATE DATABASE baza_filmow;
  2. CREATE TABLE filmy (
  3. ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID),
  4. tytul VARCHAR(35),
  5. rezyser VARCHAR(35),
  6. czas INT);
  7. INSERT INTO filmy VALUES (NULL, "Pan Tadeusz","A.Wajda",207);
  8. INSERT INTO filmy VALUES (NULL, "Matrix","A.Wachowski", 196);
  9. INSERT INTO filmy VALUES (NULL, "Shrek", "A.Adamson", 150);


mam też dodanego użytkownika klient z pełnymi prawami do baza_filmow
,chcę dopisać jeden rekord do bazy za pomocą poniższego kodu PHP:

  1. <?php
  2.  
  3. $do_bazy = mysql_connect('localhost','klient','fanfilmow');
  4.  
  5. if(! $do_bazy) {
  6.  
  7. exit ("Bład połaczenia z serwerem MySQL.");
  8.  
  9. }
  10.  
  11. if (!mysql_select_db('baza_filmow')) {
  12.  
  13.  
  14. exit ("Błąd podczas wyboru bazy baza_filmow');
  15.  
  16. }
  17.  
  18. $dodaj = "INSERT INTO filmy VALUES (NULL, 'Ziemia obiecana','A.Wajda',190)";
  19.  
  20. if(!$zapytanie = mysql_query($dodaj)) {
  21.  
  22. mysql_close();
  23.  
  24. exit('Błąd w zapytaniu');
  25.  
  26. }
  27.  
  28. $ile = mysql_affected_rows();
  29.  
  30. echo 'Liczba dodanych rekordów do tabeli filmy wynosi:' $ile<br/>;
  31.  
  32. mysql_close();
  33.  
  34. ?>
  35.  


gdy zmnieniam kod na :

  1. $dodaj="INSERT INTO filmy VALUES (NULL, 'Ziemia obiecana','A.Wajda','190')";
  2.  



Wywala mi błąd:

Parse error: syntax error, unexpected 'INSERT' (T_STRING) in C:\xampp\htdocs\listing_H_7_120.php on line 19


gdy zmnieniam kod na :
  1. $dodaj='INSERT INTO filmy VALUES (NULL, 'Ziemia obiecana','A.Wajda','190')';
  2.  


wywala mi błąd:

Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\listing_H_7_120.php on line 35

czyli na sam koniec kodu


Bardzo proszę o pomoc


Vit Stwosz






Go to the top of the page
+Quote Post
nospor
post 16.12.2015, 12:23:05
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




exit ("Błąd podczas wyboru bazy baza_filmow');
Jak otwierasz tekst " to i masz go konczyc " a nie '


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
VitStwosz
post 16.12.2015, 21:18:21
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.12.2015

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


Wieeeeelkie dzięki działa smile.gif


Vit Stwosz

Witam raz jeszcze

Jeszcze raz chciałem wrócić do przykładu z wykorzystaniem dopisania do bazy rekordu metodą POST

(we wcześniejszym poście dopisywałem rekord bez tej metody) mam tę samą bazę co w poprz. przykładzie czyli:

  1. CREATE DATABASE baza_filmow;
  2. CREATE TABLE filmy (
  3. ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID),
  4. tytul VARCHAR(35),
  5. rezyser VARCHAR(35),
  6. czas INT);
  7. INSERT INTO filmy VALUES (NULL, "Pan Tadeusz","A.Wajda",207);
  8. INSERT INTO filmy VALUES (NULL, "Matrix","A.Wachowski", 196);
  9. INSERT INTO filmy VALUES (NULL, "Shrek", "A.Adamson", 150);



No i próbuję z dopisać rekord metodą POST

formularz tak wygląda - form_film.php


  1. <! DOCTYPE HTML>
  2.  
  3. <html>
  4.  
  5. <head>
  6.  
  7. <title> Dodawanie filmu</title>
  8.  
  9. <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
  10.  
  11. </head>
  12.  
  13. <body>
  14.  
  15. <form action="http://localhost/dodaj_film.php" method="post">
  16.  
  17. <p><b><font size="4"><b>Dodawanie filmu:</font></b></p>
  18.  
  19. Tytuł:</br>
  20.  
  21. <input type="text" name="tytul" value="" size="30"><br>
  22.  
  23. Reżyser:</br>
  24.  
  25. <input type="text" name="rezyser" value="" size="30"<br>
  26.  
  27. Czas:</br>
  28.  
  29. <input type="text" name="czas" value="" size="30"<br>
  30.  
  31. <p><input type="submit" value="Wyślij" name=wyslij">
  32.  
  33. <input type="reset" value="Wyczyść" name="zeruj"></p>
  34.  
  35. </form>



natomiast plik który zapisuje do bazy nazywa się dodaj_film.php
i tak wygląda

  1. <?php
  2.  
  3. $do_bazy = mysql_connect('localhost','klient','fanfilmow');
  4.  
  5. if(! $do_bazy) {
  6.  
  7. exit ("Błąd połaczenia z serwerem MySQL.");
  8.  
  9. }
  10.  
  11. if (!mysql_select_db('baza_filmow')) {
  12.  
  13.  
  14. exit ("Błąd podczas wyboru bazy baza_filmow");
  15.  
  16. }
  17.  
  18. $dodaj = "INSERT INTO filmy VALUES(NULL, '$_POST['tytul']','$_POST['rezyser']','$_POST['czas']')";
  19.  
  20.  
  21. $zapytanie=mysql_query($dodaj);
  22.  
  23.  
  24. if(!$zapytanie == true) {
  25.  
  26. echo "Nowy film został dodany do bazy.";
  27.  
  28. }
  29.  
  30. else {
  31.  
  32. echo "Nowy film nie został dodany do bazy.";
  33.  
  34. }
  35.  
  36.  
  37. ?>



Po uruchomieniu uzyskuję błąd

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\dodaj_film.php on line 19

Próbowałem paru rzeczy ale błąd jest zawsze.

Proszę jeszcze raz o pomoc.



Vit Stwosz




Go to the top of the page
+Quote Post
viking
post 16.12.2015, 21:21:41
Post #8





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


Poczytaj sobie w jaki sposób łączy się stringi w PHP bo będziesz co chwila latał na forum z błędami składniowymi. Coś takiego nie jest poprawne '$_POST['tytul']'.
Druga sprawa to rozszerzenie mysql, zastąp je chociaż mysqli. 3 - sql injection chociaż to pewnie na tym etapie nie problem.


--------------------
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: 2.06.2025 - 15:01