Gå til innhold

sprintf med mysql query?


Anbefalte innlegg

Hei

 

Jeg har en mysql query, som jeg skal kjøre - og bruker sprintf til å legge inn informasjon. Den ser sånn ut:

 

		$query = sprintf("INSERT INTO `users` (`email`, `firstname`, `lastname`, `password`) VALUES
									('%s', '%s', '%s', '%s')",
									$email, 
									$fname, 
									$lname, 
									$pass);
		$mysql = mysql_query($query) or die(mysql_error());

 

 

error jeg får er:

 

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 '*epost*'', '*fornavnetmitt*'', ''*etternavnetmitt*'', '*kryptertepassordetmitt*' at line 2

 

kan det være at jeg bruker %s? må jeg bruke noe annet?

Takk!

Lenke til kommentar
Videoannonse
Annonse

Du kunne ikke gjøre ting litt mer kryptisk og ullent slik at det blir helt umulig å hjelpe? Først og fremst er det ikke spesielt bra å presentere feilmeldinger med *sensur*, hva om problemet hadde ligget i verdien du tilegner epost? For det andre, hva inneholder de variablene du setter inn i spørringen? ... og tilslutt, hva er *random tegn*? Har det noen likehetstegn med data inn, eller er det rett og slett helt tilfeldig?

 

Nå bare gjetter jeg her, men den siste feilmeldingen du får kan komme fordi du mangler ' rundt verdiene du tilegner de forskjellige feltene. Hvis ikke variablene inneholder ' fra før trenger du disse i selve spørringen.

Lenke til kommentar

... og dette har absolutt ingen sammenheng med dataene du setter inn i spørringen? Har du sett på hvordan spørringen faktisk blir seendes ut og hva variablene du benytter i den faktisk inneholder? Det som slår meg er at det kan være en passord-hash av et eller annet slag som mangler ' slik at MySQL tror det er et kolonnenavn og ikke data.

Lenke til kommentar

Jeg har prøvd å bare printe ut query, uten å kjøre den, så da at jeg fikk ikke med hele passord hashen, kanskje skjermen ikke var bred nok, og jeg ikke fikk scrolla helt til høyre, og når jeg la på en ' funka det heller ikke, så jeg skjønner ikke helt hva som er galt.

Lenke til kommentar

$query = sprintf("INSERT INTO `users` (`email`, `firstname`, `lastname`, `password`) 
                 VALUES ('%s',
                         '%s',
                         '%s',
                         '%s')",$email,$fname, $lname, $pass);

echo nl2br($query);

Kjør denne for å sjekke hvordan sql'en ser ut. Så kan du evt kopiere og lime den inn i phpmyadmin (eller tilsvarende) og kjøre sql'em direkte der. Så kan du manuelt endre på den til den fungerer, for så å gjøre nødvendig endringer i php koden.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...