Gå til innhold

MySQL: Problemer med tomme verdier i input-spørring


Anbefalte innlegg

Heisann.

 

Har følgende tabell:

CREATE TABLE `booking_firm` (
 `id_firm` int(4) NOT NULL auto_increment,
 `company_name` varchar(100) NOT NULL,
 `contact` varchar(60) NOT NULL,
 `phone` bigint(12) default NULL,
 `cell` bigint(12) default NULL,
 `address` varchar(30) default NULL,
 `zip` varchar(10) default NULL,
 `city` varchar(30) default NULL,
 `email` varchar(50) default NULL,
 `active` varchar(3) NOT NULL,
 PRIMARY KEY  (`id_firm`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=22;

 

Skal sette inn følgende spørring men får feilmelding:

INSERT INTO `booking_firm` ( `id_firm` , `company_name` , `contact` , `phone` , `cell` , `address` , `zip` , `city` , `email` , `active` ) VALUES (NULL , 'Rema 1000', 'Rema-Reitan', 72727272, , 'Trondheimsveien 23', 7021, '', '', 'yes');

Feilmelding:
#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 ' 'Trondheimsveien 23', 7021, '', '', 'yes')' at line 1

 

Er det ikke mulig å putte inn tomme verdier i en BIGINT? Er jeg nødt til å legge inn 0 der jeg ikke har et tall å putte inn?

Endret av Azidops
Lenke til kommentar
Videoannonse
Annonse
Problemet her er vel at du eksplisitt forsøker å legge inn NULL i id_firm som er definert som primærnøkkel og auto_increment/NOT NULL.

Men dét vil ikke mysql oppdage før den andre feilen er rettet ;-)

Feil mine herrer (?). Det fungerer utmerket. Faktisk er det MySQL som ligger til den NULL-verdien.

 

Men det er ikke det som er spørsmålet. Jeg prøver å legge inn tom verdi inn i attributten 'Cell' (5. inputverdi) og det får jeg ikke til å fungere. Jeg er nødt til å skrive 0 hvis jeg ikke har et telefonnummer å legge inn og det er litt tungvindt synes jeg. Kunne bare gjort det, men prøver å forstå meg på MySQL.

Lenke til kommentar
Problemet her er vel at du eksplisitt forsøker å legge inn NULL i id_firm som er definert som primærnøkkel og auto_increment/NOT NULL.

Men dét vil ikke mysql oppdage før den andre feilen er rettet ;-)

Feil mine herrer (?). Det fungerer utmerket. Faktisk er det MySQL som ligger til den NULL-verdien.

 

Men det er ikke det som er spørsmålet. Jeg prøver å legge inn tom verdi inn i attributten 'Cell' (5. inputverdi) og det får jeg ikke til å fungere. Jeg er nødt til å skrive 0 hvis jeg ikke har et telefonnummer å legge inn og det er litt tungvindt synes jeg. Kunne bare gjort det, men prøver å forstå meg på MySQL.

 

Du har rett, den vil legge til ihht. autoincrement, seff.

 

Men problemet ditt er fortsatt det samme, du må angi en verdi, som kan være f.eks. NULL, hvis du ikke har noe meningsfullt å legge inn. Ingenting mellom de to komma'ene er svjv syntaxfeil, selv om det ikke hadde forundra meg om mysql hadde spist det og lagt til en eller annen «passelig» standardverdi.

Lenke til kommentar
Så det finnes ingen måte å leggge inn tomme verdier i en BIGINT altså?

 

Tungvindt å sjekke om det finnes noen verdi for telefonnummer i et skjema for så sette variabelen som skal inn i spørringen til NULL.

 

Du må uansett ha litt input-validering, og når du også skal lagre som numerisk verdi må tallet parses, riktig feilmelding gis om strengen ikke kan parses som et heltall osv. Hva som gjør det så veldig mye mer tungvint å mappe blank til NULL oppi det hele er jeg ikke sikker på. Men, det fins sikkert php-rammeverk som kan ta seg av den kjedelige biten her.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...