Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem ze skladnia SQL w skrypccie php
Forum PHP.pl > Forum > Bazy danych
niecos
Mam skrypt php z trzema wstawieniami do bazy. Wszystkie insert dochodza do skutku (rekordy zapisuje w bazie), lecz wyrzuca mi błąd:

  1. $ins_film -> INSERT INTO tbl_film VALUES ('0', 'To jest tytul filmu','To jest jakis opis filmu', '2', '4', '3', '3', NOW())
  2. $id_filmu -> 13
  3. film $ins_foto ->INSERT INTO tbl_pic_film VALUES('0', 'd:/htdocs/sklep/foto/film/tojesttytulfilmu/cover95.jpg', '13')
  4.  
  5. $ins_cena_film ->INSERT INTO tbl_dost_film VALUES( '0', '13', '7.6', 'tak', '5.7', 'tak')
  6. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='2'' at line 1

sa to echa insertów

Co moze być powodem takiego blędu?
progresmedia
Cytat
Wszystkie insert dochodza do skutku (rekordy zapisuje w bazie)


Czyli w tych zapytaniach które podałeś nie ma błędu smile.gif

Cytat
to use near '='2''


Tu masz fragment zapytania przy którym jest błąd - w zapytaniach które podałeś ani razu nie występuje "=", co potwierdza, że błąd jest gdzieś indziej.

Wklej zapytania które występują wcześniej w skrypcie.
niecos
Cytat(progresmedia @ 7.07.2009, 18:14:44 ) *
Czyli w tych zapytaniach które podałeś nie ma błędu smile.gif
Tu masz fragment zapytania przy którym jest błąd - w zapytaniach które podałeś ani razu nie występuje "=", co potwierdza, że błąd jest gdzieś indziej.

Wklej zapytania które występują wcześniej w skrypcie.


wiem ze mam tam błąd i to w pierwszym, dlatego ze jak ukryłem pozostałe to dalej był ten sam to mi sie wydaje ze jest problem z "$opis_film" ale nie moge dojść co. A jakby to było pomocne to pole w bazie jest long text.
Pod spodem dane i zapytanie do tabeli
  1. <?php
  2. $tytul_film =htmlspecialchars(trim($_POST['tytul_film']));
  3. $opis_film = htmlspecialchars($_POST['opis_film']);
  4. $kat_film = $_POST['kat_film'];
  5. $bbfc = $_POST['bbfc'];
  6. $typ_sprzetu = $_POST['typ_sprzetu'];
  7. $format = $_POST['format'];
  8.  
  9.  
  10.    
  11.    $foto_czego ="film";
  12.    
  13. // wstawianie filmu do tabeli
  14.    mysql_query('SET NAMES utf8');
  15.    $ins_film ="INSERT INTO $tbl_film VALUES ('0', '".$tytul_film."','".addslashes($opis_film)."', '$kat_film', '$bbfc', '$typ_sprzetu', '$format', NOW()) ";
  16.  
  17. echo" $ins_film -> $ins_film<br>";
  18. //end wstawianie filmu do tabeli
  19. ?>


dzieki za szybką odpowiedz.
progresmedia
Ale błąd niekoniecznie musi być w tym pliku, może być w plikach wczytywanych wcześniej. Jak dla mnie dalej to wygląda na to, że błąd jest w innym zapytaniu.

Najlepiej zrób coś takiego przy każdym zapytaniu:
Kod
$sql = "cośtam";
echo "Zapytanie: " . $sql . "<br>";
mysql_query($sql);
echo "Błąd: " . mysql_error() . "<br><br>";


I będziemy wiedzieć o które dokładnie chodzi:)
niecos
Nie wiem czy dobrze zrozumialem, ale:

  1. <?php
  2. $sql = "INSERT INTO $tbl_film VALUES ('0', '".$tytul_film."','".addslashes($opis_film)."', '$kat_film', '$bbfc', '$typ_sprzetu', '$format', NOW()) ";
  3.    echo "Zapytanie: " . $sql . "<br>";
  4.    mysql_query($sql);
  5.    echo "Błąd: " . mysql_error() . "<br><br>";
  6. ?>


dało:


  1. Zapytanie: INSERT INTO tbl_film VALUES ('0', 'film 3','to jest film 3', '2', '3', '10', '2', NOW())
  2. Błąd:
  3.  
  4. $id_filmu -> 15
  5. film $ins_foto ->INSERT INTO tbl_pic_film VALUES('0', 'd:/htdocs/sklep/foto/film/film3/cover184.jpg', '15')
  6.  
  7. $ins_cena_film ->INSERT INTO tbl_dost_film VALUES( '0', '15', '4.5', 'tak', '5.5', 'tak')
  8. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='2'' at line 1


a to '='2 to jest tylko w tym zapytaniu.
progresmedia
No i skoro błąd się nie wyświetlił to znaczy, że w tym zapytaniu błędu nie ma.

Powstawiaj ten kod przy każdym zapytaniu do bazy i będziemy wiedzieć w którym dokładnie jest błąd.
kajzur
  1. <?php
  2.  
  3. $opis2 = addslashes('$opis_film');
  4. $sql = "INSERT INTO $tbl_film VALUES (0, '$tytul_film', '$opis2', '$kat_film', '$bbfc', '$typ_sprzetu', '$format', NOW()) ";
  5.   echo "Zapytanie: " . $sql . "<br>";
  6.   mysql_query($sql);
  7.   echo "Błąd: " . mysql_error() . "<br><br>";
  8. ?>


Tak wywala błąd?
niecos
Niestety to samo cały cas przy wszystkich 3 zapytaniach.


  1. Zapytanie: INSERT INTO tbl_film VALUES ('0', 'film 3','to jest film 3', '2', '6', '13', '5', NOW())
  2. Błąd:
  3.  
  4. Zapytanie: INSERT INTO tbl_pic_film VALUES('0', 'd:/htdocs/sklep/foto/film/film3/cover858.jpg', '23')
  5. Błąd:
  6.  
  7.  
  8. $ins_cena_film ->INSERT INTO tbl_dost_film VALUES( '0', '23', '4.5', 'tak', '5.5', 'tak')
  9. Zapytanie: INSERT INTO tbl_dost_film VALUES( '0', '23', '4.5', 'tak', '5.5', 'tak')
  10. Błąd:
  11.  
  12. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='2'' at line 1

jestem pewny że to jest błąd z pierwszego zapytania bo pozmienialem wszystkie wartośći na 6, 13, 5, i now to jest w dalszym ciagu blad w tym miejscu: "-> ,'to jest film 3', '2', <- ".
progresmedia
No ale ewidentnie widać, że błędu tam nie ma winksmiley.jpg

Są jakieś jeszcze inne zapytania w tym pliku? Albo w plikach includowanych do niego?
kajzur
A weź sprobuj te dane które sa liczbami wpisz do zapytania bez '/' ;> Tam gdzie się spodziewasz liczby ;>
niecos
w tym zapytaniu: INSERT INTO tbl_film VALUES ('0', 'film 3','to jest film 3', '2', '6', '13', '5', NOW())

'0' - auto increment,
film 3 to z <input>,
to jest film 3 to jest opis z <textarea>,
2, 6, 13, 5 to sa wartosci z 4 x <select>

Są jakieś jeszcze inne zapytania w tym pliku? Albo w plikach includowanych do niego?
INSERT INTO nie ma, za to są wybierania.

A weź sprobuj te dane które sa liczbami wpisz do zapytania bez '/' ;> Tam gdzie się spodziewasz liczby ;>
Przepraszam ale nie rozumiem co mam zrobic :-) blinksmiley.gif

a tak pozatym to mam jeszcze inne bardzo podobne tabele ten sam schemat wstawiania i tam jest ok
progresmedia
Czyli wracamy do punktu wyjścia - ten błąd nie dotyczy zapytań INSERT - gdyby tak było to rekordy nie dodały by się do bazy, a pisałeś wcześniej, że się dodały.

Zastosuj ten fragment kodu do wszystkich zapytań w pliku.
niecos
Cytat(progresmedia @ 7.07.2009, 20:00:45 ) *
Czyli wracamy do punktu wyjścia - ten błąd nie dotyczy zapytań INSERT - gdyby tak było to rekordy nie dodały by się do bazy, a pisałeś wcześniej, że się dodały.

Zastosuj ten fragment kodu do wszystkich zapytań w pliku.


Wyrzuca dokladnie tak samo sciana.gif
progresmedia
Ehh.. dobra, wyślij mi ten plik na biuro [at] progresmedia . pl winksmiley.jpg
niecos
To nie byl problem z insertami a z selectami.
Dzieki wszystkim a przedewszystkim: progresmedia.

Szukajcie az znajdziecie hmm teraz jestem madry
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.