17. juni 2008 - 18:48
Der er
5 kommentarer
SQL syntax error
Prøver at uploade en fil, og får en syntax fejl, min kode: <? session_start(); ?> <? include("../includes/cnx.php"); ?> <? include("../includes/rtrnfuncs.php"); ?> <? //Hent variabler $Doc_ID = $_REQUEST['doc_id']; ?> <? if($_REQUEST['slet'] == "slet") { $oldidfiler = mysql_escape_string($_REQUEST['idfiles']); $SQL = "SELECT * FROM files WHERE idfiles = $oldidfiler"; $mq_oldfil = mysql_query($SQL) or die(mysql_error()); $oldfil_arr = mysql_fetch_assoc($mq_oldfil); // Description er egentlig filnavnet // Filename er egentlig beskrivelsen $oldfil = $oldfil_arr['description']; unlink("../../filer/$oldidfiler/" . $oldfil); $SQL = "DELETE FROM files WHERE idfiles = '$oldidfiler'"; //echo $SQL; $mq = mysql_query($SQL) or die(mysql_error()); } if($_REQUEST['submit'] == "Upload") { $Doc_ID = $_REQUEST['doc_id']; if ($_FILES['bilag']['size'] == 0) { ?> <script language="JavaScript" type="text/javascript"> alert('Du skal vælge en fil!'); </script> <? } elseif ($_REQUEST['beskrivelse'] == "") { ?> <script language="JavaScript" type="text/javascript"> alert('Du skal lave en beskrivelse'); </script> <? } else { $desc = mysql_escape_string($_REQUEST['beskrivelse']); $filename = mysql_escape_string($_FILES['bilag']['name']); $sql = "INSERT INTO files (doc_id, filename, description) VALUES ('$Doc_ID','$desc','$filename')"; echo $sql; echo '<script>alert('.$sql.');</script>'; mysql_query($sql) or die(mysql_error()); $fileid = mysql_insert_id(); if (! file_exists("../../filer/$fileid")) { mkdir("../../filer/$fileid"); } move_uploaded_file($_FILES['bilag']['tmp_name'],"../../filer/$fileid/" . $_FILES['bilag']['name']); } } ?> <body style="background-color: #f3f3f3;"> <link href="../css/main.css" rel="stylesheet" type="text/css" /> <form enctype="multipart/form-data" action="edit-file.php&doc_id=<?=$Doc_ID;?>" method="post"> <table width="450" border="0" cellspacing="5" cellpadding="0"> <tr> <td> <label for="bilag">Fil:</label> <br /> <input type="file" name="bilag" style="width:250px;" /> </td> </tr> <tr> <td> <label for="beskrivelse">Beskrivelse:</label> <br /> <input type="text" name="beskrivelse" style="width:300px;" /> </td> </tr> </tr> <td><input type="submit" name="Upload" value="Upload" /></td> </tr> <tr> <td> </td> </tr> <tr> <td> <strong>Eksisterende filer</strong> </td> </tr> <tr> <td> <? $SQL = "SELECT * FROM files WHERE doc_id = $Doc_ID"; echo $SQL; $mq_gf = mysql_query($SQL) or die(mysql_error()); if (mysql_num_rows($mq_gf) > 0) { ?> <? while ($fil = mysql_fetch_assoc($mq_gf)) { ?> <p><?=$fil['description']?> | <?=$fil['filename']?> <a href="edit-file.php?doc_id=<?=$Doc_ID?>&slet=slet&idfiles=<?=$fil['idfiles']?>"><img src="../images/delete.gif" alt="Slet" title="Slet" border="0"> </a></p><hr /> <? } ?> <? } else {?> Ingen <? } ?> </td> </tr> </table> </form> </body> ------------------------------------------- Min db ser sådan ud: Feltnavn Datatype Attributter Nulværdi Standardværdi Ekstra Handling idfiles int(11) Nej auto_increment Gennemse bestemte værdier Ændre Slet Primær Unik Indeks Fuldtekst doc_id int(11) Nej 0 Gennemse bestemte værdier Ændre Slet Primær Unik Indeks Fuldtekst filename text Nej Gennemse bestemte værdier Ændre Slet Primær Unik Indeks Fuldtekst description text Nej Gennemse bestemte værdier Ændre Slet Primær Unik Indeks Fuldtekst
Annonceindlæg fra Computerworld it-jobbank
Hvad skriver den præcist?
DEn skriver : 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 1 Har prøvet at skrive SQL ud, men det reagere den ikke på...
Har nu ændret lidt i det, og får nu ingen SQL fejl længere, men den hverken smider noget i databasen, eller uploader noget til serveren, og skriver ikke min INSERT SQL ud ?? <? session_start(); ?> <? include("../includes/cnx.php"); ?> <? include("../includes/rtrnfuncs.php"); ?> <? //Hent variabler $Doc_ID = $_REQUEST['doc_id']; ?> <? if($_REQUEST['slet'] == "slet") { $oldidfiler = mysql_escape_string($_REQUEST['idfiles']); $SQL = "SELECT * FROM files WHERE idfiles = $oldidfiler"; $mq_oldfil = mysql_query($SQL) or die(mysql_error()); $oldfil_arr = mysql_fetch_assoc($mq_oldfil); // Description er egentlig filnavnet // Filename er egentlig beskrivelsen $oldfil = $oldfil_arr['description']; unlink("../../filer/$oldidfiler/" . $oldfil); $SQL = "DELETE FROM files WHERE idfiles = '$oldidfiler'"; //echo $SQL; $mq = mysql_query($SQL) or die(mysql_error()); } if (isset($_POST['submit'])) { $Doc_ID = $_REQUEST['doc_id']; if ($_FILES['bilag']['size'] == 0) { ?> <script language="JavaScript" type="text/javascript"> alert('Du skal vælge en fil!'); </script> <? } elseif ($_REQUEST['beskrivelse'] == "") { ?> <script language="JavaScript" type="text/javascript"> alert('Du skal lave en beskrivelse'); </script> <? } else { $desc = mysql_escape_string($_REQUEST['beskrivelse']); $filename = mysql_escape_string($_FILES['bilag']['name']); $sql = "INSERT INTO files (doc_id, filename, description) VALUES ('$Doc_ID','$desc','$filename')"; echo $sql; //echo '<script>alert('.$sql.');</script>'; mysql_query($sql) or die(mysql_error()); $fileid = mysql_insert_id(); if (! file_exists("../../filer/$fileid")) { mkdir("../../filer/$fileid"); } move_uploaded_file($_FILES['bilag']['tmp_name'],"../../filer/$fileid/" . $_FILES['bilag']['name']); } } ?> <body style="background-color: #f3f3f3;"> <link href="../css/main.css" rel="stylesheet" type="text/css" /> <form method="post" action="edit-file.php" enctype="multipart/form-data"> <input type="hidden" name="doc_id" value="<?=$Doc_ID;?>" /> <table width="450" border="0" cellspacing="5" cellpadding="0"> <tr> <td> <label for="bilag">Fil:</label> <br /> <input type="file" name="bilag" style="width:250px;" /> </td> </tr> <tr> <td> <label for="beskrivelse">Beskrivelse:</label> <br /> <input type="text" name="beskrivelse" style="width:300px;" /> </td> </tr> </tr> <td><input type="submit" name="Upload" value="Upload" /></td> </tr> <tr> <td> </td> </tr> <tr> <td> <strong>Eksisterende filer</strong> </td> </tr> <tr> <td> <? $SQL = "SELECT * FROM files WHERE doc_id = '$Doc_ID'"; echo $SQL; echo $Doc_ID; $mq_gf = mysql_query($SQL) or die(mysql_error()); if (mysql_num_rows($mq_gf) > 0) { ?> <? while ($fil = mysql_fetch_assoc($mq_gf)) { ?> <p><?=$fil['description']?> | <?=$fil['filename']?> <a href="edit-file.php?doc_id=<?=$Doc_ID?>&slet=slet&idfiles=<?=$fil['idfiles']?>"><img src="../images/delete.gif" alt="Slet" title="Slet" border="0"> </a></p><hr /> <? } ?> <? } else {?> Ingen <? } ?> </td> </tr> </table> </form> </body>
Slettet bruger
22. juni 2008 - 11:53
#4
Jeg TROR nok at denne linie skal ændres: $SQL = "SELECT * FROM files WHERE idfiles = $oldidfiler"; til: $SQL = "SELECT * FROM files WHERE idfiles = '$oldidfiler'"; Men det er ikke sikkert, og det er jo heller ikke sikkert det løser dit problem, men prøv :-) Ole.
Hvor kommer din $Doc_ID fra ?? <input type="hidden" name="doc_id" value="<?=$Doc_ID;?>" /> En anden ting, har du huske at slå fejlbeskeder til for din webhotel ??
Vi tilbyder markedets bedste kurser inden for webudvikling