Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] Insert Into
Forum PHP.pl > Forum > PHP
<?php?>
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
Spawnm
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)
piotrooo89
ź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ć.
<?php?>
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?
mlattari
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
piotrooo89
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. ?>
erix
~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
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.