[PHP+mysql] Dodawanie rekordów

0

Witam. Mam taki oto kod:

 else if ($_GET['id']=='dodaj')
  {  $nr     =  $_GET['nr'];
 	$autor  =  $_GET['nick'];
	$text   =  $_GET['tresc'];
    $data   =  date('Y-m-d H:i:s');
    $connection = @mysql_connect(localhost, root ,****);

	            $dodaj = "INSERT INTO `comment` (`id, `id_news`, `autor`, `text`, `data`) VALUES ('', ".$nr.", ".$autor.", ".$text.", ".$data.");";
	if($connection==false)
 		echo "Nie można połączyć z bazą danych" ;
 		else {
   		echo "ok" ;
   		 mysql_select_db('zawodnicy');

				if   (  mysql_query($dodaj)==false)
    				 echo "błąd"      ;    


     	 }

   }

Wiem że nie jest zbyt porządny ale na razie to jest testowe: będe to poprawiał. w każdym bądz razie Skrypt łączy się z bazą danych jednak nie chce dodać wpisu. Nie pokazuje żadnego błędu ale zwraca false. Co jest źle? (id to AUTO_INCREMENT). Może sie nie zgadzać w )( i }{ bo zmieniałem kod już na forum ale nie oto chodzi...

//pozdrawiam

0

echo mysql_error() po wywolaniu mysql_query - to tak na przyszlosc. A brakuje apostrofow w zapytaniu:

"...VALUES ('', '".$nr."', '".$autor."', '".$text."', '".$data."')";
0

Przy okazji taka rada - jeśli masz pole auto_increment, jak w Twoim przykładzie id, to zamiast pisać:
"INSERT INTO comment (id, id_news, autor, text, data) VALUES ('', '".$nr."', '".$autor."', '".$text."', '".$data."')"
proponuję wersję krótszą:
"INSERT INTO comment (id_news, autor, text, data) VALUES ('".$nr."', '".$autor."', '".$text."', '".$data."')"
Nie ma sensu wysyłać do serwera bazy danych informacji o identyfikatorze, jeśli informacja ta jest pusta, a identyfikator wyciągany jest skąd indziej. Do tego służy pełna wersja zapytania INSERT (z wyszczególnieniem pól), by podawać tylko to, co trzeba.

0

wszystko ok ale wykryłem co trza było zrobićoprócz apostrofów. Trzeba było do id wstawić 'null'

0

Adam.Pilorz ci już powiedział że trzeba było wyrzucić w ogóle podawanie id

1 użytkowników online, w tym zalogowanych: 0, gości: 1