SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
|
23. 05. 2011. | #1 |
expert
Expert
Datum učlanjenja: 15.03.2011
Poruke: 518
Hvala: 16
20 "Hvala" u 17 poruka
|
Problem: Error updating database
Imam ovaj kod:
$naslov = $data['nalsov']; mysql_connect ("localhost", "baza", "lozinka") or die ('Error: '.mysql_error()); mysql_select_db ("mojabazar_mmm"); $query="INSERT INTO asd (ID, naslov)VALUES ('NULL','".$naslov."')"; mysql_query($query) or die ('Error updating database'); echo "Baza je updejtovana sa: " .$naslov. " "; Gde je greska? |
23. 05. 2011. | #2 |
banned
Professional
Datum učlanjenja: 04.06.2005
Poruke: 371
Hvala: 0
738 "Hvala" u 83 poruka
|
NULL nemoj stavljati pod jednostruke navodnike. Koristi mysql_error() da bi video grešku u upitu.
__________________
Don't look at me; I'm lost too. “If you can't dazzle them with brilliance, baffle them with bul*s**t.” |
23. 05. 2011. | #4 |
expert
Expert
Datum učlanjenja: 15.03.2011
Poruke: 518
Hvala: 16
20 "Hvala" u 17 poruka
|
Nije u tome problem... verovatno je nesto sa tipovima podataka... u svakom slucaju hvala na pronadjenim greskama u kodu.
|
23. 05. 2011. | #5 |
Super Moderator
Knowledge base
Datum učlanjenja: 21.03.2006
Lokacija: Kragujevac
Poruke: 1.878
Hvala: 291
1.345 "Hvala" u 355 poruka
|
Koristi mysql_error() da vidiš koja je greška, ali evo ja ću ti pokušati i bez toga da ti pomognem:
Kôd:
$query="INSERT INTO asd (ID, naslov)VALUES ('NULL','".$naslov."')"; Ako želiš da upušeš NULL vrednost u polje, onda upisuješ NULL bez navodnika, dakle ovo što ti je već @Br@nkoR predložio: Kôd:
$naslov = mysql_real_escape_string($naslov); $query="INSERT INTO asd (ID, naslov) VALUES (NULL, '$naslov')"; Druga moguća stvar je što nisi uradio eskejp stringa $naslov. Recimo ako je naslov Nemo' da me zavritlavaš bez eskejpovanja MySQL upit će sadržati 'Nemo' da me zavritlavaš' i zbog ovih rasparenih navodnika upit puca. Navodnici su samo jedan primer, preskakanje ovog koraka dovodi do mnogih zloupotreba i rupa u bazi podatak. Zato sve stringove koji se upisuju u bazu obavezno na escape prvo. Poslednja izmena od mileusna : 23. 05. 2011. u 18:19. |
23. 05. 2011. | #6 |
expert
Expert
Datum učlanjenja: 15.03.2011
Poruke: 518
Hvala: 16
20 "Hvala" u 17 poruka
|
Pokusao sam nesto preko phpmyadmin-a i upravu si, evo sta kaze: Column 'ID' cannot be null ... e sad zasto column 'ID' nemoze da bude null zaista neznam... da li da stavim npr. $i=0 pa da se $i svaki put uvecava za 1... ?
|
23. 05. 2011. | #7 |
Super Moderator
Knowledge base
Datum učlanjenja: 21.03.2006
Lokacija: Kragujevac
Poruke: 1.878
Hvala: 291
1.345 "Hvala" u 355 poruka
|
Zato što je verovatno u strukturi baze naglašeno NOT NULL Vrlo je moguće da je ID AUTO_INCREMENT, ako nije, napravi ga da bude (može sve iz phpMyAdmin). Onda MySQL sam vodi računa o dodeljivanju ID-ja redom, a ti samo upisujše naslov, recimo.
Kôd:
$naslov = mysql_real_escape_string($naslov); $query="INSERT INTO asd (naslov) VALUES ('$naslov')"; $new_id = mysql_insert_id(); // ovde vidi koji ID je mysql dodelio novom slogu Moraćeš malo da savladaš osnove baza podataka i MySQL-a, jbg... Poslednja izmena od mileusna : 23. 05. 2011. u 18:38. |
23. 05. 2011. | #8 |
expert
Expert
Datum učlanjenja: 15.03.2011
Poruke: 518
Hvala: 16
20 "Hvala" u 17 poruka
|
Da, moracu ... ucim ... davno sam radio u programskom jeziku delphi 7 i baze pa mi je znanje iz ovog jako slabo, a i poprilicno je drugacije raditi u php-u...
Da to je bio problem jer polje ID nije bilo niti NULL niti auto_increment... Thanks for HELP! Poslednja izmena od AdriaMart : 23. 05. 2011. u 18:45. |
24. 05. 2011. | #9 |
expert
Expert
Datum učlanjenja: 15.03.2011
Poruke: 518
Hvala: 16
20 "Hvala" u 17 poruka
|
Potrebno je da u bazu upisem sledci broj 20.456788 pa me interesuje koji tip podataka da koristim?
|
24. 05. 2011. | #10 |
expert
Grand Master
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
|
FLOAT... i možeš pisati ovako ne moraš duplirati varijable... $query="INSERT INTO asd (ID, naslov)VALUES ('$data[naslov]')";
|
|
|