PHP OOP+MySQLi hjælp til insert

Tags:    php oop mysqli insert

<< < 12 > >>
Hej.

I må undskylde at jeg laver en 3' tråd omkring dette emne, men, jeg har et insert problem, som ser således ud:

I klassen Specieslist:
Fold kodeboks ind/udPHP kode 


og i hoved dokumentet:
Fold kodeboks ind/udPHP kode 


Alt andet virker, minus insert, det er det eneste jeg umidelbart ikke kan få til at reagere ordenligt.

Hjælp søges.



19 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 14 karma
Sorter efter stemmer Sorter efter dato
Prøv med følgende i din sql:

INSERT INTO `users` (`nick`, `password`, `email`, `about`, `datetime`, `day`, `www`, `ip`, `location`, `fuldenavn`, `adresse`, `postnr`, `by`, `status`, `imagecode`) VALUES ..........

Den kan være at navnene på nogle af dine rækker er reserverede.

Hvis det stadig ikke virker, så prøv evt. at kopier queryen, og kør den fra phpmyadmin eller hvad du nu bruger. -Hvis du får fejl, er det noget med SQL'en, hvis ikke, så er det noget i din PHP kode.



Indlæg senest redigeret d. 27.12.2011 21:34 af Bruger #10410
DATETIME og BY er reserverede ord...



Skal der ikke være $this foran de forskellige variabler?
$this, bruges til at angive variabler/funktioner, i samme klasse. Da variablerne i Danni's tilfælde er parametre til funktionen, fungerer de som lokale variabler for funktionen. Derfor er det ikke nødvendigt at bruge $this i dette tilfælde.



Okay Martin, så lærte jeg det :).



Skal der ikke være $this foran de forskellige variabler?

Fold kodeboks ind/udPHP kode 


Nu er jeg ikke så meget inde i klasser endnu.

Prøv at smid en or die(mysql_error()); på din insert, og post resultatet her.


Som en udvidelse til det, så prøv at gemme din query i en variabel og udskriv den til din side vha. print/echo/ for at se om den ser ud som den skal.



jeg har forsøgt med:

if($result==true){ return true; }
Efter linje 12 i øverste post her inde.
Men, det virkede ikke lige.

Den retunere intet fra query'en..

Har også forsøgt at sige return $this->db->query('INSERT INTO.............');
Også uden held.



En INSERT SQL returer intet. Dog kan du fange det IDet for den sidst indsatte række med MySQLi insert ID



Indlæg senest redigeret d. 26.12.2011 00:22 af Bruger #10216
En INSERT SQL returer intet. Dog kan du fange det IDet for den sidst indsatte række med MySQLi insert ID


Jeg mener da at en INSERT returnerer enten true eller false, alt efter om dataene er blevet indsat eller ej? Men det er måske mig der er gal på den?



En INSERT SQL returer intet. Dog kan du fange det IDet for den sidst indsatte række med MySQLi insert ID


Jeg mener da at en INSERT returnerer enten true eller false, alt efter om dataene er blevet indsat eller ej? Men det er måske mig der er gal på den?


Ifølge deres dokumentation så skulle den returnere true.

http://php.net/manual/en/mysqli.query.php

Desuden er der en fejl i din query (derfor god ide at skrive sin query ud)

Du bruger din server variabel således: $_SERVER['REMOTE_ADDR'], men du bruger samme "gnyf" til indikering af start/slut på streng. Så du bør bruge dobbelgnyf i stedet ( " ).

Når du bruger strenge så brug dobbelgnyf, database sammenhæng enkel gnyf. Har afhjulpet en masse besvær gennem tiden for mig :)

Edit: Har lige kigget i din select query og her gør du det samme... Så jeg bliver lige i tvivl hvorvidt det er korrekt. Men udskriv lige din query i en variabel og konkluderer at den ser rigtig ud.




Indlæg senest redigeret d. 26.12.2011 02:01 af Bruger #6559

Du bruger din server variabel således: $_SERVER['REMOTE_ADDR'], men du bruger samme "gnyf" til indikering af start/slut på streng. Så du bør bruge dobbelgnyf i stedet ( " ).

Når du bruger strenge så brug dobbelgnyf, database sammenhæng enkel gnyf. Har afhjulpet en masse besvær gennem tiden for mig :)


PHP behandler ' og " forskelligt. Så det handler ikke om hvor du bruger dine strenge, men hvad du bruger dem til og hvad de indeholder.

$_SERVER['REMOTE_ADDR'] er foretrukkent pga performance fremfor $_SERVER["REMOTE_ADDR"]!

http://php.net/manual/en/language.types.string.php

Fold kodeboks ind/udPHP kode 


--------------------------------


Prøv at smid en or die(mysql_error()); på din insert, og post resultatet her.


Tvivler på at mysql_error vil hjælpe meget, da han benytter mysqli.




Indlæg senest redigeret d. 26.12.2011 09:41 af Bruger #955
<< < 12 > >>
t