syntax fejl ved update af database
Hej eksperter,Jeg får denne fejl når jeg forsøger at opdatere min mysql database:
fejl: ret_indlaeg prøvede UPDATE koncerter SET dato = '05/05-2009', klokken = '22.35'spillested = 'Rust - København'tekst = 'Live i aften til årets rock event 'WHERE id = 13 men fejlede: 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 'spillested = 'Rust - København'tekst = 'Live i aften til årets rock event 'WHE' at line 1
Jeg bruger følgende til at opdatere databasen:
function ret_indlaeg($id, $dato, $klokken, $spillested, $tekst){
$sql = "UPDATE koncerter " .
"SET dato = '$dato', " .
"klokken = '$klokken'" .
"spillested = '$spillested'" .
"tekst = '$tekst'" .
"WHERE id = $id";
$resultat = mysql_query($sql);
if(!$resultat)
rapporter_fejl("ret_indlaeg prøvede $sql " .
"men fejlede: " . mysql_error());
}
samt:
<?
require_once("login.php");
require_once("adminfunktioner.php");
require_once("adminlayout.php");
if(logget_ind()){
if(isset($_GET[id])) {
$sql = "SELECT dato, klokken, spillested, tekst " .
"FROM koncerter " .
"WHERE id = $_GET[id]";
$resultat = mysql_query($sql);
if(!$resultat)
rapporter_fejl("adminrediger.php forsøgte $sql " .
"men fejlede: " . mysql_error());
else {
$post = mysql_fetch_array($resultat);
?>
<html>
<body>
<form method='post'
action=' adminrediger.php '>
<input type='hidden' name='id'
value='<? echo $_GET[id]; ?>'>
Dato:
<input type='text' name='dato'
value='<? echo $post[dato]; ?>'><br>
klokken:
<input type='text' name='klokken'
value='<? echo $post[klokken]; ?>'><br>
Spillested:
<input type='text' name='spillested'
value='<? echo $post[spillested]; ?>'><br>
<textarea name='tekst' cols="80" rows="10"><? echo $post[tekst]; ?>
</textarea>
<br>
<input type='submit' value='Rediger'>
</body>
</html>
<?
}
}
if(isset($_POST[id]) &&
isset($_POST[dato]) &&
isset($_POST[klokken]) &&
isset($_POST[spillested]) &&
isset($_POST[tekst])){
ret_indlaeg($_POST[id],
$_POST[dato],
$_POST[klokken],
$_POST[spillested],
$_POST[tekst]);
vis_status("Indlæg redigeret");
}
} else
vis_status("Du er ikke logget ind.");
?>
og:
<?
require_once("forbindelse.php");
require_once("debug.php");
function vis_forside(){
?>
<html>
<body>
<h1>Blog administration</h1>
<a href='admin.php?logud=1'>log ud</a>
<h2>Tilføj indlæg</h2>
<form method='post' action='admintilfoej.php'>
Dato:
<input type='text' name='dato'><br>
klokken:
<input type='text' name='klokken'><br>
Spillested:
<input type='text' name='spillested'><br>
<textarea name='tekst' cols="80" rows="10"></textarea>
<br>
<input type='submit' value='Tilføj'>
</form>
<h2>Rediger indlæg</h2>
<?
$sql = "SELECT id, klokken " .
"FROM koncerter " .
"ORDER BY id DESC";
$resultat = mysql_query($sql);
if(!$resultat)
rapporter_fejl("vis_forside forsøgte $sql " .
"men fejlede: " . mysql_error());
else
while($post = mysql_fetch_array($resultat)){
echo "<b>$post[klokken]</b> - ";
echo "<a href='adminrediger.php?id=$post[id]'>";
echo "rediger</a> ";
echo "<a href='adminslet.php?id=$post[id]'>slet</a>";
echo "<br>\n";
}
?>
</body>
</html>
<?
}
function vis_status($tekst){
?>
<html>
<body>
<? echo $tekst; ?><br>
Hop til <a href='admin.php'>forsiden</a>
</body>
</html>
<?
}
?>
Jeg bruger et lignende script, bare med færre vars, hvor det virker fint med at opdatere databasen.