25. februar 2005 - 12:37
Der er
22 kommentarer og 1 løsning
Indsæt NULL i MySQL
Hej, er der nogen som vil tjekke denne sourse? $myArray = array('slika_main_src', 'slika_main_link', 'slika_main_opis', 'slika_vesti_src', 'slika_potpis', 'galerija_no', 'vest_tekst_full', 'vest_link', 'video'); foreach($myArray as $val) { if(!($$val)) { $$val = 'NULL'; } } $sql= " INSERT INTO tekstovi ( id , status , datum , izvor , naslov , slika_main_src , slika_main_link , slika_main_opis , slika_vesti_src , slika_potpis , galerija_no , vest_tekst_short , vest_tekst_full , vest_link , video ) VALUES ('','$status','$datum','$izvor','$naslov','$slika_main_src','$slika_main_link','$slika_main_opis','$slika_vesti_src','$slika_potpis','$galerija_no','$vest_tekst_short','$vest_tekst_full','$vest_link','$video')"; $execsql=mysql_query($sql); - Åbenbart skriver den NULL som ord og ikke som værdi... Tak.
Annonceindlæg fra Infor
25. februar 2005 - 12:41
#1
prøv lige at udskrive værdien af $sql
25. februar 2005 - 12:48
#2
INSERT INTO tekstovi ( id , status , datum , izvor , naslov , slika_main_src , slika_main_link , slika_main_opis , slika_vesti_src , slika_potpis , galerija_no , vest_tekst_short , vest_tekst_full , vest_link , video ) VALUES ('','8','2005-02-25','
www.info.net' ,'ninanan','foobar',NULL,'spameggs',NULL,NULL,'45','kkkkk',NULL,NULL,NULL)
25. februar 2005 - 12:50
#3
skulle være OK... Skal ID ikke være et tal?
25. februar 2005 - 13:24
#4
NULL betyder 'dette felt har ikke fået nogen værdi', så den nemme måde er ikke at give en værdi til de felter der ikke skal have en værdi (skal være NULL) ;-)
INSERT INTO tekstovi ( id , status , datum , izvor , naslov , slika_main_src , slika_main_opis , galerija_no , vest_tekst_short ) VALUES ('','8','2005-02-25','
www.info.net' ,'ninanan','foobar','spameggs','45','kkkkk')
mvh JakobA
25. februar 2005 - 13:25
#5
sone>> der er nok auto_increment på id beograd>> det se da ok ud - NULL fortolkes jo en ikke eksisterende værdi
25. februar 2005 - 13:26
#6
jakobA's løsning er klart den bedste
25. februar 2005 - 13:35
#7
Men hvis I nu kigger på mandens kode... så kan felterne jo have en værdi. beograd >> Er det vigtigt om der er et NULL i DB eller en tom streng ('')?
25. februar 2005 - 13:50
#8
Hvad med at bruge: foreach($myArray as $val) { if(!($$val)) { $$val = ''; } } Jeg går ud fra dine felter er: DEFAULT NULL
25. februar 2005 - 13:54
#9
Hmm, det vil jo bare give en tom streng. Jeg synes nu osse din forespørgsel ser rigtig ud.
25. februar 2005 - 13:57
#10
Prøv med en evt. fejlmelding her: $execsql=mysql_query($sql) or die(mysql_error());
25. februar 2005 - 14:05
#11
Ellers må du gøre sådan her: $myArray = array('slika_main_src', 'slika_main_link', 'slika_main_opis', 'slika_vesti_src', 'slika_potpis', 'galerija_no', 'vest_tekst_full', 'vest_link', 'video'); foreach($myArray as $val) { if(!($$val)) { $$val = 'NULL'; } else { $$val = "'{$$val}'"; } } $sql= " INSERT INTO tekstovi ( id , status , datum , izvor , naslov , slika_main_src , slika_main_link , slika_main_opis , slika_vesti_src , slika_potpis , galerija_no , vest_tekst_short , vest_tekst_full , vest_link , video ) VALUES ('',$status,$datum,$izvor,$naslov,$slika_main_src,$slika_main_link,$slika_main_opis,$slika_vesti_src,$slika_potpis,$galerija_no,$vest_tekst_short,$vest_tekst_full,$vest_link,$video)"; $execsql=mysql_query($sql);
25. februar 2005 - 14:09
#12
Den cuttede i forespørgslen: $myArray = array('slika_main_src', 'slika_main_link', 'slika_main_opis', 'slika_vesti_src', 'slika_potpis', 'galerija_no', 'vest_tekst_full', 'vest_link', 'video'); foreach($myArray as $val) { if(!($$val)) { $$val = 'NULL'; } else { $$val = "'{$$val}'"; } } $sql= " INSERT INTO tekstovi ( id , status , datum , izvor , naslov , slika_main_src , slika_main_link , slika_main_opis , slika_vesti_src , slika_potpis , galerija_no , vest_tekst_short , vest_tekst_full , vest_link , video ) VALUES ('', $status, $datum, $izvor, $naslov, $slika_main_src, $slika_main_link, $slika_main_opis, $slika_vesti_src, $slika_potpis, $galerija_no, $vest_tekst_short, $vest_tekst_full, $vest_link, $video)"; $execsql = mysql_query($sql);
25. februar 2005 - 14:17
#13
Helt præcis hvilken fejl får du fra MySQL?
25. februar 2005 - 14:21
#14
sone -> Der er ingen fejl, den indsætter blot NULL som tekst.
25. februar 2005 - 14:30
#15
NULL er symbolet for 'ingen værdi' 'NULL' er en streng der indeholder bogstaverne N, U, L og L du har anførselstegn omlring alle dine variable i værdilisten og derfor står der 'NULL' når kommandoen kommer frem til MySQL.
25. februar 2005 - 14:31
#16
...og det kan du fx afhjælpe ved hjælp af mit forslag: 14:09:21
25. februar 2005 - 14:45
#17
En anden, og sikkert bedre, måde at gribe det an på: $myArray = array('slika_main_src', 'slika_main_link', 'slika_main_opis', 'slika_vesti_src', 'slika_potpis', 'galerija_no', 'vest_tekst_full', 'vest_link', 'video'); foreach($myArray as $val) { if(isset($$val)) { $felter[] = $val; $values[] = $$val; } } $feltstr = implode(', ', $felter); $valuestr = "'" . implode("', '", $values) . "'"; $sql= "INSERT INTO tekstovi ($feltstr) VALUES ($valuestr)"; $execsql = mysql_query($sql);
25. februar 2005 - 14:50
#18
Evt.: if(!empty($$val)) { alt efter dine variablers beskaffendhed.
25. februar 2005 - 15:53
#19
I have to continue in english since i don't know danish... i hope that is not the problem
Detox made fine optimization of my code, but without result for inserting.. it is still inserting '' (blank), but not NULL. NULL IS default value for most of the fields.
here's the SQL output:
INSERT INTO tekstovi (id, status,datum,izvor,naslov,slika_main_src,slika_main_link,slika_main_opis,slika_vesti_src,slika_potpis,galerija_no,vest_tekst_full,vest_link,video) VALUES ('', '8', '2005-02-25', '
www.info.net' , 'sth', '', '', 'sthelse', '', '', '', 'foo', 'foofoo', '0')
25. februar 2005 - 16:00
#20
that is why detox recommended using ! empty( $$val ) instead of isset( $$val )
28. februar 2005 - 09:04
#21
yes, that did it! thank you everyone for your help
28. februar 2005 - 13:55
#22
detox, du skal liige have nogle points...
28. februar 2005 - 20:19
#23
Ok så og velbekommen.
Vi tilbyder markedets bedste kurser inden for webudvikling