webForumDet fria alternativet
Logga in / Bli medlem

Fel i INSERT INTO

PHP

6 svar · 369 visningar · startad av henkepenka

Medlem sedan sep. 2002125 inlägg
Trådstart#1

Ska spara lite prylar i databasen...men de funkar inte och jag får felmeddelande...

Såhär ser koden ut:

$AddConn = mysql_connect ('localhost', 'root', '');
mysql_select_db('movies');
$AddQuery = mysql_query("INSERT INTO movies (movieTitle,movieHandling,movieRegisor,movieType,movieLength,movieRelease,movieRatingH,movieRatingL,movieSeenH,movieSeenL,moviePic,movieDate) VALUES
('" . $movieTitle . "',
'" . $movieHandling . "',
'" . $movieRegisor . "',
'" . $movieType . "',
'" . $movieLength . "',
'" . $movieRelease . "',
'" . $movieRatingH . "',
'" . $movieRatingL . "',
'" . $movieSeenH . "',
'" . $movieSeenL . "',
'" . $moviePic . "',
'" . $movieDate . "',
)") or exit(mysql_error()); 

mysql_close($AddConn);

Nån som kan se nått galet?

MvH //
Henrik

Medlem sedan dec. 20025 483 inlägg
#2

Börja med att skriva ut SQL-frågan, samt posta felmeddelandet.

Medlem sedan dec. 200012 464 inlägg
#3

movieSeen L ?

men de funkar inte och jag får felmeddelande

Jikes, om du får ett felmeddelande så posta det.

Medlem sedan juni 200032 967 inlägg
#4

och jag får felmeddelande...

Jaha... Sugen på att ge oss det också?
Det kan också vara lämpligt att skriva ut färdig SQL-fråga med echo också, så blir det betydligt lättare att felsöka.

Medlem sedan sep. 2002125 inlägg
#5

Såhär ser hela koden ut:

if ($_GET['do'] == 'addmovie'){

	$movieTitle = $_POST['movieTitle'];
	
	$movieHandling = $_POST['movieHandling'];
	
	if ($movieHandling == ''){
		$movieHandling = 'Ingen beskrivning ännu...';
	}else{
		$movieHandling = preg_replace('/vbCrLf/', '<br>', $movieHandling);
	}
	
	$movieRegisor = $_POST['movieRegisor'];
	if ($movieRegisor == ''){
		$movieRegisor = '-';
	}
	
	$movieType = $_POST['movieType'];
	if ($movieType == ''){
		$movieType = '-';
	}
	
	$movieLength = $_POST['movieLength'];
	if ($movieLength == ''){
		$movieLength = '0';
	}
	
	$movieRelease = $_POST['movieRelease'];
	if ($movieRelease == ''){
		$movieRelease = '0';
	}

	$movieRatingH = $_POST['movieRatingH'];
	$movieRatingL = $_POST['movieRatingL'];
	
	if ($_POST['movieSeenH'] == 'True'){
		$movieSeenH = 'True';
	}else{
		$movieSeenH = 'False';
	}
	
	if ($_POST['movieSeenL'] == 'True'){
		$movieSeenL = 'True';
	}else{
		$movieSeenL = 'False';
	}
	$moviePic = 'no';
	$movieDate = date( "Y-m-d", time() ); 

//---Kontrollera ifall det finns en film med vald titel
$checkConn = mysql_connect ('localhost', 'root', '');
mysql_select_db('movies');
$checkQuery = mysql_query("SELECT * FROM movies") or exit(mysql_error());

while ($check = mysql_fetch_array($checkQuery)) {
	if ($movieTitle == $check['MovieTitle']){
		header('Location: addmovie.php?error=title&movieHandling=' . $movieHandling . '&movieRegisor=' . $movieRegisor . '&movieType=' . $movieType . '&movieLength=' . $movieLength . '&movieRelease=' . $movieRelease . '&movieSeenH=' . $movieSeenH . '&movieSeenL=' . $movieSeenL);
	}
}
mysql_close($checkConn);

//---Lägg till film
$AddConn = mysql_connect ('localhost', 'root', '');
mysql_select_db('movies');
$AddQuery = mysql_query("INSERT INTO movies (movieTitle,movieHandling,movieRegisor,movieType,movieLength,movieRelease,movieRatingH,movieRatingL,movieSeenH,movieSeenL,moviePic,movieDate) VALUES
('" . $movieTitle . "',
'" . $movieHandling . "',
'" . $movieRegisor . "',
'" . $movieType . "',
'" . $movieLength . "',
'" . $movieRelease . "',
'" . $movieRatingH . "',
'" . $movieRatingL . "',
'" . $movieSeenH . "',
'" . $movieSeenL . "',
'" . $moviePic . "',
'" . $movieDate . "',
)") or exit(mysql_error()); 

mysql_close($AddConn);

//---Skickas till den film som man precis lagt till
$sendConn = mysql_connect ('localhost', 'root', '');
mysql_select_db('movies');
$sendQuery = mysql_query("SELECT * FROM movies WHERE movieTitle LIKE '%" . $movieTitle . "%'") or exit(mysql_error());

$send = mysql_fetch_array($sendQuery);

header('Location: showmovie.php?id=' . $send['id'] );
mysql_close($sendConn);
}

Och felmeddelandet som dyker upp är:

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 ')' at line 14

Rad 14 är:

if ($movieHandling == ''){

Vet att koden inte är jätteoptimal, och att det är många databasanrop, men jag är nybörjare vad det gäller PHP.
Det är säkert något simpelt, men mina ögon missar det.

Medlem sedan dec. 20025 483 inlägg
#6

Du har ett kommatecken för mycket:

'" . $movieDate . "',

Om inte det hjälper så skriv ut SQL-frågan:

echo "INSERT INTO movies (movieTitle,movieHandling,movieRegisor,movieType,movieLength  ,movieRelease,movieRatingH,movieRatingL,movieSeenH,movieSeen  L,moviePic,movieDate) VALUES('" . $movieTitle . "','" . $movieHandling . "','" . $movieRegisor . "','" . $movieType . "','" . $movieLength . "','" . $movieRelease . "','" . $movieRatingH . "','" . $movieRatingL . "','" . $movieSeenH . "','" . $movieSeenL . "','" . $moviePic . "','" . $movieDate . "',)";

(beware of whitespace)

Medlem sedan sep. 2002125 inlägg
#7

Tack så mycket! Det var kommatecknet som var fel!

262 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)