Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] Insert Into, Nie potrafie znaleść blędu ... p-o głupi błąd.
<?php?>
post 7.03.2009, 12:46:42
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 11.01.2004

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


Witam ,

Oto kawalek kodu :
  1. <?php
  2. $sql="INSERT INTO $tabela_b (id, url, type, lang, keywords, descb, page, pr, site, follow, index, data, hour, who ,data_index) VALUES (NULL,'$_POST[send_url]','$_POST[send_type]','$_POST[send_lang]','$_POST[send_keywords]','$_POST[send_descb]','$_POST[send_page]','$_POST[send_pr]','$_POST[send_site]','$_POST[send_follow]','$send_index',curdate(),curtime(),'$send_who',curdate())";
  3. $result=mysql_query($sql);
  4. echo mysql_errno() . ": " . mysql_error() . "\n";
  5. ?>


Wczesnie oczywiscie skonfigurowalem polaczenie , wybralem tabele.
ID posiada wlasciwosc autoinc. , pola data , data_index sa typu date , site pr typu int , hour typu time a reszta to text ;-)
Dane sa przekazywane z formularza , printowalem kazdą zmienna $_POST[] posiada poprawne dane ....
Niestety kod ten nie dodaje nic do bazy danych.
mysql error zwraca przy probie dodania z formularza byle czego :

  1. 1064: 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 'index, data, hour, who ,data_index) VALUES (NULL,'dfsdf','eSyndiCat','Polski','s' at line 1


Nie potrafie znaleść w moim kodzie bledu....
Mogę prosić o pomoc ?

Pozdrawiam


--------------------
Notatnik rządzi!
Go to the top of the page
+Quote Post
Spawnm
post 7.03.2009, 12:52:12
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




wywal id i z value NULL .
filtruj dane bo kod podatny na sql injection !
//edit
chyba w pierwszym (dane) dałeś więcej niż w values(dane)

Ten post edytował Spawnm 7.03.2009, 12:55:21
Go to the top of the page
+Quote Post
piotrooo89
post 7.03.2009, 12:56:38
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




źle również zagnieżdżasz zmienne w zapytaniu sql.

  1. <?php
  2. $sql = "INSERT INTO $tabela (url) VALUES ('".$_POST['send_url']."')";
  3. ?>


i tak dalej.

ja polecam Ci korzystanie z takiej składni:

  1. <?php
  2. $sql = "INSERT INTO $tabela SET
  3. url = '".$_POST'send_url']."'");
  4. ?>


ładnie wszystko przejrzyście widać.

Ten post edytował piotrooo89 7.03.2009, 12:58:38


--------------------
Go to the top of the page
+Quote Post
<?php?>
post 7.03.2009, 13:11:36
Post #4





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 11.01.2004

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


Cytat(Spawnm @ 7.03.2009, 14:52:12 ) *
wywal id i z value NULL .
filtruj dane bo kod podatny na sql injection !
//edit
chyba w pierwszym (dane) dałeś więcej niż w values(dane)


Po wywaleniu nadal ten sam błąd....
Jest tyle samo pol co wartosci czyli 15 ....
Jakies pomysly?


--------------------
Notatnik rządzi!
Go to the top of the page
+Quote Post
mlattari
post 7.03.2009, 13:49:57
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 3
Dołączył: 23.12.2008
Skąd: Piaseczno

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


zapytanie na pierwszy rzut okan wydaje się poprawne...
hmm czyżby w tym zapytaniu były jakieś zastrzeżone słowa dla MySql np. index? http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
Go to the top of the page
+Quote Post
piotrooo89
post 7.03.2009, 13:58:29
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a spróbuj tak:

  1. <?php
  2. $sql=mysql_query("INSERT INTO $tabela_b SET
  3. url='".$_POST['send_url']."',
  4. type='".$_POST['send_type']."',
  5. lang='".$_POST['send_lang']."',
  6. keywords='".$_POST['send_keywords']."',
  7. descb='".$_POST['send_descb']."',
  8. page='".$_POST['send_page']."',
  9. pr='".$_POST['send_pr']."',
  10. site='".$_POST['send_site']."',
  11. follow='".$_POST['send_follow']."',
  12. index='".$send_index."',
  13. data='CURDATE()',
  14. hour='CURTIME()',
  15. who='".$send_who."',
  16. data_index='CURDATE()'") or die(mysql_error());
  17. ?>


--------------------
Go to the top of the page
+Quote Post
erix
post 7.03.2009, 16:23:23
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~piotrooo89:
Cytat
hmm czyżby w tym zapytaniu były jakieś zastrzeżone słowa

Np. index jest słowem zarezerwowanym, a Twój kod niczego nie zmienia. Reszta zapytania jest poprawna, tylko nazwy pól nie są w uszach. winksmiley.jpg


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 28.04.2024 - 00:36