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? |
NULL nemoj stavljati pod jednostruke navodnike. Koristi mysql_error() da bi video grešku u upitu.
|
Naslov se ne pise "nalslov" pa i tu imas verovatno problem
|
Nije u tome problem... verovatno je nesto sa tipovima podataka... u svakom slucaju hvala na pronadjenim greskama u kodu.
|
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); 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. |
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... ?
|
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); Moraćeš malo da savladaš osnove baza podataka i MySQL-a, jbg... |
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! |
Potrebno je da u bazu upisem sledci broj 20.456788 pa me interesuje koji tip podataka da koristim?
|
FLOAT... i možeš pisati ovako ne moraš duplirati varijable... $query="INSERT INTO asd (ID, naslov)VALUES ('$data[naslov]')";
|
^ tako kako si napisao ne moze definitivno, ima ID viska..
a mislim kad se zna koliko ti max. decimala treba da je bolje koristiti DECIMAL tip, float zna da bude nezgodan zbog greske zaokruzivanja... |
To ID se postavi PRIMARY A_I i nema potrebe ga upisivati ovako, ili NULL ili šta već, ja sam samo kopirao, zaboravio iz VALUES da izbacim. Može i DECIMAL... mislim da su koordinate u pitanju...
|
Meni ovako kako sam napisao radi super... ID polja je onoliko koliko treba... hoce li biti problema ako se broj upise kao VARCHAR tip?
|
nemas neki poseban problem, ali trosis znacajno vise prostora, index je veci, radi sporije... a i moze da bude problem ako treba da obavis neku matematicku operaciju na tom polju...
|
A jel možeš da mi kažeš zbog čega u ID upisuješ NULL???
Pošto meni to nikako, ali nikako nije jasno.... :1018: |
Kolona ID je označena kao AUTO_INCREMENT,a to znači da će MySQL automatski generisati i uneti sledeći broj, ukoliko se unese vrednost NULL ili bez vrednosti, u to polje.
|
Aham...
Nisam to znao... Uvek sam upisivao prazan string, i nikad nisam video da neko upisuje NULL... Logično je... Hvala... |
U polje naslov koje je tipa TEXT sta da unesem da bi se slova sa kvacicama prikazivala onako kako treba... nemoze se izabrati samo utf8 vec neke kombinacja (npr.utf-bin,general i sl) medju kojima nema srpskih...
|
Treba UNICODE i VARCHAR, ne TEXT...
|
utf8_general_ci
|
Tip: VARCHAR
Sortiranje: utf8_general_ci (i polje i tabela) Ali i PHP strana mora da ti bude UTF-8... |
A takođe treba obratiti pažnju i na podešavanja servera (apache):
Kôd:
AddDefaultCharset utf-8 |
Jel AddDefaultCharset utf-8 treba da stavim u .htacces file ili ? STo se tice strane ona je utf8 i sve ide glatko sto se toga tice.
|
Citat:
Bitan segment je komunikacije MySQL klijenta (u tvom slučaju skripta) sa MySQL serverom i bazom za koju si već podesio da je UTF8. Pogledaj MySQK SET NAMES komandu. |
Sta moze da bude greska ako se pojavi ovo prilikom eksporta mysql-a u xml :
error on line 50 at column 3: Extra content at the end of the document inace linija 50 je poslendja linija koda i zatvara php |
Vreme je GMT +2. Trenutno vreme je 21:47. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.