coolishMedlem sedan sep. 200297 inlägg Hej.
Jag har en kodsnutt som ser ut enligt nedan. Jag får felmeddelande när jag försöker skriva till databasen, någon som kan hjälpa mig med felet?
Felmeddelandet ser ut så här:
Du har laddat upp filen driving_licens.jpg
Glöm inte att spara när du återvänder till sidan!
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades., SQL state 07001 in SQLExecDirect in c:\Inetpub\wwwroot\kapeadmin\insertImage.php on line 35
och koden jag använder:
if(isset($_POST['skicka'])) {
if(!($_FILES['fil']['name']==""||$_FILES['fil']['name']=="none")){
if(is_uploaded_file($_FILES['fil']['tmp_name'])){
move_uploaded_file($\_FILES\['fil'\]\['tmp_name'\],"uploaded/".$\_FILES\['fil'\]\['name'\]);
echo "\<font face='verdana' color='#ffffff' size='1'\>Du har laddat upp filen ".$\_FILES\['fil'\]\['name'\]."\</font\>\<br\>\<font face='verdana' color='#ffffff' size='2'\>\<b\>Glöm inte att spara när du återvänder till sidan!\</b\>\</font\>";
// Här ska kod för databasen in
$tmp_id = $\_REQUEST\['id'\];
echo $tmp_id;
$filnamn = $\_FILES\['fil'\]\['name'\];
$conn_id=odbc_connect("sla","","") or
die("Kunde inte spara till databasen");
$sql = "Update StatusInfo Set image = ($filnamn) where id = ('$tmp_id')";
$run = odbc_exec($conn_id,$sql);
odbc_close($conn_id);
}
}
}
coolishMedlem sedan sep. 200297 inlägg Om jag gör tvärt om med apostroferna får jag istället:
"Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id = ()'., SQL state 37000 in SQLExecDirect in c:\Inetpub\wwwroot\kapeadmin\insertImage.php on line 36"
Jag kan däremot skriva ut tmp_id med echo $tmp_id;
@ndersMedlem sedan juni 200032 969 inlägg Så här borde det se ut:
$sql = "Update StatusInfo Set image = '$filnamn' where id = $tmp_id";
Skriv ut SQL-frågan med echo, så får vi se hur den ser ut.
coolishMedlem sedan sep. 200297 inlägg echo $sql; ger följande:
Update StatusInfo Set image = 'support_2.gif' where id =
Jag får alltså inte med något id. Jag hämtar tmp_id med $tmp_id = $_REQUEST['id']; och jag kan skriva ut det högre upp på sidan.
SteadyMedlem sedan dec. 2004225 inlägg $_REQUEST?
Om du ska hämta från POST skriver du $_POST och om du ska hämta från adressfältet skriver du $_GET.
Aldrig sett $_REQUEST innan :q
coolishMedlem sedan sep. 200297 inlägg Hämtar från en länk. Och jag kan ta med värdet in och skriva ut det högst upp men sen verkar det inte hänga med längre. Och jag får samma resultat oavsett om jag använder $_GET eller $_REQUEST.
SteadyMedlem sedan dec. 2004225 inlägg Hm, låt oss se hela koden igen.
coolishMedlem sedan sep. 200297 inlägg <html>
<head>
<title>Ladda upp fil</title>
</head>
<body bgcolor="#666666">
<? php
$tmp_id = $_GET['id'];
echo $tmp_id;
if(isset($_POST['skicka'])) {
if(!($_FILES['fil']['name']==""||$_FILES['fil']['name']=="none")){
if(is_uploaded_file($_FILES['fil']['tmp_name'])){
move_uploaded_file($_FILES['fil']['tmp_name'],"uploaded/".$_FILES['fil']['name']);
echo "<font face='verdana' color='#ffffff' size='1'>Du har laddat upp filen ".$_FILES['fil']['name']."</font><br><font face='verdana' color='#ffffff' size='2'><b>Glöm inte att spara när du återvänder till sidan!</b></font>";
// Här ska kod för databasen in
$filnamn = $_FILES['fil']['name'];
$conn_id=odbc_connect("sla","","") or
die("Kunde inte spara till databasen");
$sql = "Update StatusInfo Set image = '$filnamn' where id = $tmp_id";
echo $sql;
//echo $tmp_id;
//$run = odbc_exec($conn_id,$sql);
odbc_close($conn_id);
}
}
}
?>
<form method="post" action="insertImage.php" enctype="multipart/form-data">
<table border="0" cellpadding="0" cellspacing="0">
<tr valign="top">
<td valign="top">
<font face="verdana" size="1" color="#ffffff"><b>Välj fil att ladda upp:</b></font>
<input type="file" name="fil"><br><br>
<input type="submit" name="skicka" value="Ladda upp"><hr noshade size="1"></td>
</tr>
</table>
</form>
</body>
</html>
coolishMedlem sedan sep. 200297 inlägg Problemet är löst, jag postade om sidan och tappade därmed värdet. Skickade med tmp_id i en <input type=hidden> och fick det att fungera.