Avatar billede jjdk Nybegynder
14. februar 2006 - 08:52 Der er 17 kommentarer og
2 løsninger

Kan ikke gemme i MySQL

Hej derude. Vores server (Elitehost) har foretaget nogle sikkerhedsopdateringer og herefter virker denne kode ikke længere. Posten gemmes ikke! Nogen der kan gennemskue, hvad der er galt?

<?php
mysql_connect("localhost","vardeborg","xxxx");
mysql_select_db("vardeborgdk");
$insertSQL = "insert into koersel_tabel (dato, km, formal, timer, minutter, destin_fra, destin_til, indtastet_dato)
              values ('15-05-2006', '45', 'Testk1', '4', '30', 'Varde', 'Esbjerg', '14-02-2006')";
mysql_query($insertSQL);
mysql_close();

echo "<font face='Verdana' size='2'>Så er denne post gemt<br><br>";
Echo "<font face='Verdana' size='2'><a href=koersel_menu.htm>Tilbage til menuen</a>";
?>

Den ligger i øvrigt her: www.vardeborg.dk/koersel/koersel_test.php
Avatar billede nielle Nybegynder
14. februar 2006 - 08:59 #1
Prøv med dette:

<?php
mysql_connect("localhost", "vardeborg", "xxxx") or die(mysql_error());
mysql_select_db("vardeborgdk") or die(mysql_error());
$insertSQL = "insert into koersel_tabel (dato, km, formal, timer, minutter, destin_fra, destin_til, indtastet_dato)
              values ('15-05-2006', '45', 'Testk1', '4', '30', 'Varde', 'Esbjerg', '14-02-2006')";
mysql_query($insertSQL) or die(mysql_error());
mysql_close() or die(mysql_error());

echo "<font face='Verdana' size='2'>Så er denne post gemt<br><br>";
echo "<font face='Verdana' size='2'><a href=koersel_menu.htm>Tilbage til menuen</a>";
?>
Avatar billede horsmark Nybegynder
14. februar 2006 - 09:04 #2
mysql_close() behøves ikke da php automatisk lukker for alle db connections når en php side er afviklet...
Avatar billede jjdk Nybegynder
14. februar 2006 - 09:07 #3
Så får jeg denne fejl:
Field 'udbetalt' doesn't have a default value

Jeg har i MySQL et felt der hedder "udbetalt". Typen er Text
Avatar billede jjdk Nybegynder
14. februar 2006 - 09:07 #4
Horsmark: Men det er jo ikke det, der giver fejlen.
Avatar billede horsmark Nybegynder
14. februar 2006 - 09:10 #5
nix men brug lige nielle´s eksempel så får du spyttet en fejl ud der hvor det kikser højst sandsynligt...
Avatar billede jjdk Nybegynder
14. februar 2006 - 09:12 #6
Det har jeg gjort ovenfor......
Avatar billede horsmark Nybegynder
14. februar 2006 - 09:17 #7
$insertSQL = "insert into koersel_tabel (dato, km, formal, timer, minutter, destin_fra, destin_til, indtastet_dato, udbetalt)
              values ('15-05-2006', '45', 'Testk1', '4', '30', 'Varde', 'Esbjerg', '14-02-2006', 'min udbetalt value')";
Avatar billede horsmark Nybegynder
14. februar 2006 - 09:19 #8
mht til fejlen så er det fordi feltet ikke har en standard værdi og du _skal_ derfor indsætte en værdi ellers fejler dit sql.

Alternativt hvis ikke feltet udbetalt skal være required kan du sætte feltets default værdi til null
Avatar billede nielle Nybegynder
14. februar 2006 - 09:19 #9
Det lader til at du har et felt - udbetalt - i din koersel_tabel-tabel. Dette sætter du ikke til noget i INSERT'en, og derfor vil MySQL forsøge at indsætte default-værdien. Den brokker sig så over at du øjensynligt ikke har angivent nogen default-værdi. Det bør du have, eller du kan måske gøre det på dnne måde:

$insertSQL = "insert into koersel_tabel (dato, km, formal, timer, minutter, destin_fra, destin_til, indtastet_dato, udbetalt)
              values ('15-05-2006', '45', 'Testk1', '4', '30', 'Varde', 'Esbjerg', '14-02-2006', NULL)";
Avatar billede nielle Nybegynder
14. februar 2006 - 09:21 #10
... altså som horsmark skriver :^)
Avatar billede horsmark Nybegynder
14. februar 2006 - 09:24 #11
well forklaret * 2 = bedre forståelse ikke sandt nielle ;-)
Avatar billede nielle Nybegynder
14. februar 2006 - 09:25 #12
*G*
Avatar billede jjdk Nybegynder
14. februar 2006 - 10:04 #13
Ok - men det har da virket tidligere. Elitehost fortæller, at de har opgraderet MySQL til version 2.6.3.
Lige nu står feltet til: Nullværdi = "Nej" og Standardværdi = ""
Jeg har andre felter, som ikker er nævnt her. Så dem får jeg nok også fejl på, når "Udbetalt" er på plads.
Skal jeg sætte standardværdi til "NULL"??
Avatar billede jjdk Nybegynder
14. februar 2006 - 10:05 #14
Det er altså underligt det her. Jeg har en anden tabel, hvor den gemmer godt nok. Her er der også en text-felt, hvor der ikke er sat nogen standardværdi.
Avatar billede jjdk Nybegynder
14. februar 2006 - 10:21 #15
Nu har jeg bare sat værdien "NULL" i feltet Udbetalt. Jeg havde et datofelt mere, hvor jeg så fik fejl. Her har sat værdien til "0000-00-00" og så skulle jeg lige ændre syntaxen for datoerne. Nu virker det.
Min kommentar ovenfor om at det er underligt..... Se lige bort fra den, da alle felter tildeles værdier.
Jeg må konkludere, at den gamle version hos Elitehost har accepteret at ikke alle felter tildeles værdier. Det gør den nye ikke.
Tak for hjælpen - Sender I et svar.
Avatar billede horsmark Nybegynder
14. februar 2006 - 10:21 #16
yes sir :-)
Avatar billede nielle Nybegynder
14. februar 2006 - 10:22 #17
Til "version 2.6.3"? Det var da en tussegammel en i betragtning af at vi pt. er oppe i 5.x.

Hvis:

Nullværdi = "Nej"

- så kan du ikke sætte feltet til NULL.
Avatar billede nielle Nybegynder
14. februar 2006 - 10:22 #18
Svar :^)
Avatar billede jjdk Nybegynder
14. februar 2006 - 10:24 #19
Har hele problemet bare været, at Nullværdi = "nej". Hvis den var sat til "ja", så havde der måske ikke været problemer.
Versionsnummeret er på phphmyadmin
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester