Oprettet søn. d. 04. marts 2012 kl. 11:11:33

dounie
dounie (7.393 point. Point ude: 450)
www.blognielsen.dk

En af mine database tabeller - Felter virker ikke

Hej! :-)

Jeg sidder ikke med et decideret problem, men nærmere noget jeg har oplevet efterhånden et par gange, eftersom jeg er begyndt at benytte mig af PDO (Prepared Statements). Jeg har oplevet at når jeg har tilføjet et nyt felt til databasen, så vil systemet simpelthen bare ikke sætte nogle data ind. Jeg har prøvet at ændre databasetypen m.m. men uden held.

Jeg har fået det til at virke ved:
- At rykke det pågældende felt længere til "venstre", altså mod starten af tabellen, så det ikke ligger i slutningen.

- Slette nogle af de andre felter (fandt to jeg ikke brugte)

De felter der ligger i slutningen af tabellen er typisk nogle med standardværdier, men jeg har aldrig haft problemer med at tilføje et nyt felt, og få indsat data i det..

Bruger typisk Varchar til tekst - til længere tekst benytter jeg TEXT, da LONGTEXT ikke virker i PDO, af hvad jeg har erfaret. Til tal bruger jeg typisk INT, eller Varchar i nogle tilfælde.

Jeg håber på at kunne få et svar på hvorfor den kan drille mig på den måde? :-)

Sig endelig til hvis andre oplysninger skal bruges.

// Henrik

Skrevet søn. d. 04. marts 2012 kl. 11:52:28| #1

"så vil systemet simpelthen bare ikke sætte nogle data ind" ... der kommer ingen fejlbesked? Og din kode sørger for at du kan se en eventuel fejlbesked?

Skrevet søn. d. 04. marts 2012 kl. 12:05:26| #2

dounie
dounie (7.393 point)
www.blognielsen.dk
Den indsætter jo fint i andre felter, undtagen det nye felt. Hvis jeg har problemer, plejer jeg at lave en var_dump, og det har jeg også prøvet, og giver blot NULL.

Skrevet søn. d. 04. marts 2012 kl. 12:06:28| #3

dounie
dounie (7.393 point)
www.blognielsen.dk
Men jeg har som sagt ikke noget decideret problem. Det virker fint nu. Og jeg har KUN ændret det, at databasefeltet er blevet rykket længere mod de første felter i tabellen..

Skrevet søn. d. 04. marts 2012 kl. 12:08:04| #4

Ok. Betyder det så, at du har rykket feltet til venstre, forbi et TEXT/LONGTEXT felt?

Skrevet søn. d. 04. marts 2012 kl. 12:17:42| #5

dounie
dounie (7.393 point)
www.blognielsen.dk
Nej. Der er ingen longtext/text i denne tabel. Der er i alt 27 felter, og alle de varchar undtagen id som er int.

Skrevet søn. d. 04. marts 2012 kl. 13:53:26| #6

Broxigar
Broxigar (11.061 point)
www.alsa-data.dk
Nu spørger jeg jo sandsynligvis det dummeste spørgsmål som nogen kunne stille, men har du husket at opdatere og gennemtjekke dine queries ?

Skrevet man. d. 05. marts 2012 kl. 00:02:22| #7

dounie
dounie (7.393 point)
www.blognielsen.dk
Som sagt har jeg ikke noget problem i øjeblikket, udover at jeg ikke forstår hvorfor at det hænder sommetider, at jeg simpelthen ikke kan indsætte noget i feltet. Der kommer ingen fejl, der bliver sat ind i de øvrige felter - den ENESTE handling jeg har udført, for at det er kommet til at virke er, at jeg har "flyttet" mit felt, længere mod starten af tabellen dvs:

id, bla, bla1, bla2, bla3, bla4, bla5 ... nyt bla-felt

Det virker ikke, men flytter jeg det så hen på

id, bla, bla1, nyt bla-felt  bla2, bla3, bla4, bla5

Jeg har ikke oplevet det før min brug af Prepared statments.

Når jeg indsætter noget gør jeg følgende:

if ($opret = $mysqli->prepare("INSERT INTO bla_tabel (`bla`, `bla`, `bla`, `bla`, `bla`, `bla`, `bla`) values (?, ?, ?, ?, ?, ?, ?)")) {
   
    $opret->bind_param('sssssss', $bla, $bla, $bla, $bla, $bla, $bla, $bla);
   
    $opret->execute();
   
    $opret->close(); 

    $mysqli->close();
}


Der er ikke problemer med ovenstående kode - den virker i hvert fald. Jeg ønsker bare at vide hvorfor at den pludselig kan overføre sig sådan? Altså når jeg tilføjer et nyt felt i tabellen bla_tabel..

Jeg har tænkt:
- Har jeg oprettet for mange felter i denne database tabel (27 felter?)
- Bruger jeg forkerte databasetyper?

Eller hvad er det der sker? :-)

Skrevet man. d. 19. marts 2012 kl. 08:02:55| #8


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Hjælp til at hente 5 poster og fremhæve den enkelte post...

Oprettet den 20. maj 2013 kl. 15.44
allandk giver 60 point for svar | Giv et svar »

fejl i while (gentager sekvens)

Oprettet den 19. maj 2013 kl. 10.58
magnus_rievers giver 30 point for svar | Giv et svar »

Select og 2 count

Oprettet den 17. maj 2013 kl. 17.15
steen-h giver 100 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Fem smarte funktioner i din Mac som du sikkert ikke kender

Her har du fem muligheder for at tweake din Mac på en fed måde.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Ny opfindelse: Oplad din mobil på 20 sekunder

Måske er det snart slut med at lade mobilen op hver aften. Med ny opfindelse kan telefonen få fuld energi på sølle 20 sekunder.


Nyheder fra Computerworld

Teaser billede

Galleri: De 10 vildeste datacentre i verden

I en gammel kirke, i et oppusteligt telt, på nedlagte militæranlæg eller midt i ørkenen. Der er ingen grænser for, hvor man kan banke et datacenter op. Her er de 10 sejeste anlæg i verden. I...


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger