Gå til innhold

[Løst] Får ikke lagt inn informasjon i MySQL database


Anbefalte innlegg

Jeg har prøvd å finne problemet, men jeg sitter helt fast her.. Noen som muligens vet hva som er galt her?

 

include("includes/mysql.php");
	$user = $_POST['user'];
	$email = $_POST['email'];
	$skype = $_POST['skype'];




	$table = "users";

	$sql = "SELECT * FROM $table WHERE user='$user'";
	$sql2 = "SELECT * FROM $table WHERE email='$email'";
	$sql3 = "SELECT * FROM $table WHERE skype='$skype'";

	$result = mysql_query($sql);
	$result2 = mysql_query($sql2);
	$result3 = mysql_query($sql3);

	$count = mysql_num_rows($result);
	$count2 = mysql_num_rows($result2);
	$count3 = mysql_num_rows($result3);

	if ($count == 0 && $count2 == 0 && $count3 == 0)
	{

		$passwd = md5($_POST['pass']);
		$age = $_POST['age'];

		$registersql = "INSERT INTO $table VALUES (NULL, $user, $passwd, $email, $skype, $age, 1";
		mysqli_query($registersql);
		header("Location: dashboard.php");
	}

 

Takk for all hjelp :-)

Lenke til kommentar
Videoannonse
Annonse

Du mangler vel iallfall en ) i slutten av INSERT-spørringen.

 

Et par tips til koden:

  • I stedet for 3 select kan du komme unna med en hvor du har user = '...' OR email = '...' OR skype = '...' (forutsatt at du ikke vil gi tilbake en unik melding pr. feil)
  • Å bruke verdier direkte fra $_POST medfører at man er åpen for SQL-injection. Bruk enten «prepared statements» eller mysql_real_escape_string / mysqli_real_escape_string e.l.
  • Sjekk at spørringene faktisk gir tilbake et fornuftig resultat. I dette tilfellet bør du sjekke at INSERT-spørringen faktisk fungerer og gir true tilbake. Hvis den ikke gjør det, slik som du nå opplever, kan du printe ut mysql_error / mysqli_error i stedet for å videresende. Dette kan gi en god indikasjon på hvorfor spørringen feiler.

Endret av Ernie
Lenke til kommentar

Du burde alltid bruke ` rundt navn på felt eller tabeller, og alltid ' rundt variabler du skal sette inn ;)

Bare en passende advarsel: ` rundt navn på felter er ikke standard SQL og er en uvane å lære seg. Det absolutt beste er å unngå spesialtegn (alt annet enn a-z) slik at denne typen herk ikke er nødvendig. Har man feltnavn bestånde av bare a-z er ` helt unødvendig å bruke rundt feltnavn og tabeller.
Lenke til kommentar

Du burde alltid bruke ` rundt navn på felt eller tabeller, og alltid ' rundt variabler du skal sette inn ;)

Bare en passende advarsel: ` rundt navn på felter er ikke standard SQL og er en uvane å lære seg. Det absolutt beste er å unngå spesialtegn (alt annet enn a-z) slik at denne typen herk ikke er nødvendig. Har man feltnavn bestånde av bare a-z er ` helt unødvendig å bruke rundt feltnavn og tabeller.

 

Er det ikke standard? Ah, vel da har jeg lært noe nytt i dag også! Men det skal ikke akkurat så mye til når jeg hadde en idiot som lærer i dette for... 6 år siden ;)

Lenke til kommentar

Du burde alltid bruke ` rundt navn på felt eller tabeller, og alltid ' rundt variabler du skal sette inn ;)

Bare en passende advarsel: ` rundt navn på felter er ikke standard SQL og er en uvane å lære seg. Det absolutt beste er å unngå spesialtegn (alt annet enn a-z) slik at denne typen herk ikke er nødvendig. Har man feltnavn bestånde av bare a-z er ` helt unødvendig å bruke rundt feltnavn og tabeller.

 

Er det ikke standard? Ah, vel da har jeg lært noe nytt i dag også! Men det skal ikke akkurat så mye til når jeg hadde en idiot som lærer i dette for... 6 år siden ;)

Nope, det er nok ikke standard (til informasjon: det gikk noen år før jeg fant ut det selv :p). ANSI SQL tilsier vel at " skal brukes (tar forbehold mot dårlig hukommelse), men mitt inntrykk er at «alle» gjør sin egen greie på det der og driter i standarden. MySQL må iallfall settes i «ANSI mode» før den takler det.
Lenke til kommentar

Nope, det er nok ikke standard (til informasjon: det gikk noen år før jeg fant ut det selv :p). ANSI SQL tilsier vel at " skal brukes (tar forbehold mot dårlig hukommelse), men mitt inntrykk er at «alle» gjør sin egen greie på det der og driter i standarden. MySQL må iallfall settes i «ANSI mode» før den takler det.

 

Så jeg er ikke alene nei xD

Lenke til kommentar

Skulle visst det :-) Har vært for mye borti ints og sånt i java.. Så jeg trodde alt som hadde med tall å gjøre ikke skulle ha quotes :-)

 

Tall trenger ikke ha quotes :) NULL trenger heller ikke.

 

Vel.. Det var å putte tall og NULL i quotes som funket, så jeg vet ikke jeg..

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å
×
×
  • Opprett ny...