10. august 2004 - 08:05Der er
25 kommentarer og 4 løsninger
SQL error
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
-------------------------------------------------------- Er ret sikker på, at det er denne linje det er galt med: --------------------------------------------------------- mysql_query("INSERT INTO test (kommentar, billede) value('$_POST[komm]','$_FILES[upload][name]'") or die(mysql_error());
-------------------------------------------------------- Men I får lige hele scriptet ;-) --------------------------------------------------------
//Tilslut til database $db_connect = mysql_connect("xxxxxxx", "xxxxxxxx", "xxxxxx") or die(mysql_error()); //Vælg database mysql_select_db("vipzdk", $db_connect) or die(mysql_error()); //Sti der skal uploades til $sti = "/usr/local/www/vipzdk/www/hq/test/"; //Husk denne mappe må ikke være skrivebeskyttet //Sætter filtyperne der er tilladt her i arrayet $allow_files = array("jpg", "bmp", "png", "gif"); //Sætter max størrelse på filen //Husk at i php.ini er max størrelse sat til 2 mb som standard, //og kan give fejl hvis filer er over 2 mb $size = 20000000; //I bytes //Finder hvilket filtype der er tale om $ext = pathinfo($_FILES['upfile']['name']); //Tjekker om filtypen er tilladt if(in_array($ext["extension"], $allow_files)) { //Tjekker om filen findes if(!file_exists("$sti".$_FILES['upfile'][name]."")) { //Tjekker om filen er større end det tilladte if($_FILES['upfile']['size'] <= $size) { //Hvis der bliver lavet en fil if(is_uploaded_file($_FILES['upfile']['tmp_name'])) { //Flyt filen til det dir og omdøb den til dens rigtige filnavn move_uploaded_file($_FILES['upfile']['tmp_name'], "$sti".$_FILES['upfile']['name'].""); mysql_query("INSERT INTO test (kommentar, billede) value('$_POST[komm]','$_FILES[upload][name]'") or die(mysql_error()); } else { echo "ERROR"; } }else { echo "Filen er for stor, prøv igen"; } } else { echo "Filen eksisterer, prøv igen"; } } else { echo "Filtypen er ikke tilladt, prøv igen"; } ?>
------------------------------ Hvad siger I, kan den knækkes? :-)
mysql_query("INSERT INTO test (kommentar, billede) value('$_POST[komm]','$_FILES[upload][name]'") or die(mysql_error());
om til
$sql = "INSERT INTO test (kommentar, billede) value('" . mysql_escape_string( $_POST['komm'] ) . "','" . $_FILES['upload']['name'] . "'"; mysql_query( $sql ) or die(mysql_error());
Gør det til en vane, så er det nemmere at debugge, så tilføjer du bare echo foran "$sql =" hvis du gerne vil vide hvad den indeholder... mysql_escape_string sørger for at lave ' om til \' i de kommentarer der postes...
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 'value('Tester lige','status1.gif'' at line 1
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.