20. juli 2005 - 23:52
Der er
7 kommentarer og 1 løsning
Mysql fejl. tegnet ' laver fejl
Hey folkens .... har en input text boks som indeholde tegnet ' eks. Rippie's webdesign. den bliver sendt afsted via en form og hedder så $_POST['link'] hvorfor laver den en fejl når jeg køre denne sql command ? $result = mysql_query("update subsites set name = '$_POST[name]', title = '$_POST[title]', link = '$_POST[link]', text1 = '$_POST[text1]', text2 = '$_POST[text2]', link_1 = '$_POST[link1]', link_2 = '$_POST[link2]', link_3 = '$_POST[link3]', link_4 = '$_POST[link4]', link_5 = '$_POST[link5]', link_1text = '$_POST[link1text]', link_2text = '$_POST[link2text]', link_3text = '$_POST[link3text]', link_4text = '$_POST[link4text]', link_5text = '$_POST[link5text]', template = '$_POST[template]' where id = '$_GET[id]'") or die (mysql_error()); Den siger denne fejl : ------------------------------------- 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 'Noer-Photo', link_4text = 'Web10 - Webhost', link_5text = 'Google Search',' at line 13
Annonceindlæg fra Infor
jeg ved ikke om det virker, men prøv $result = mysql_query("update subsites set name = '".$_POST['name']."', title = '".$_POST['title']."', link = '".$_POST['link']."', text1 = '".$_POST['text1']."', text2 = '".$_POST['text2']."', link_1 = '".$_POST['link1']."', link_2 = '".$_POST['link2']."', link_3 = '".$_POST['link3']."', link_4 = '".$_POST['link4']."', link_5 = '".$_POST['link5']."', link_1text = '".$_POST['link1text']."', link_2text = '".$_POST['link2text']."', link_3text = '".$_POST['link3text']."', link_4text = '".$_POST['link4text']."', link_5text = '".$_POST['link5text']."', template = '".$_POST['template']."' where id = '".$_GET['id']."'") or die (mysql_error());
Når apostroffer skal indesættes, er du nødt til at escape dem sådan: \' Det gøres nemmest ved at køre alt input gennem addslashes()
$result = mysql_query("update subsites set name='$_POST[name]', title='$_POST[title]', link='$_POST[link]', text1='$_POST[text1]', text2='$_POST[text2]', link_1='$_POST[link1]', link_2='$_POST[link2]', link_3='$_POST[link3]', link_4='$_POST[link4]', link_5='$_POST[link5]', link_1text='$_POST[link1text]', link_2text='$_POST[link2text]', link_3text='$_POST[link3text]', link_4text='$_POST[link4text]', link_5text='$_POST[link5text]', template='$_POST[template]' where id = '$_GET[id]'") or die (mysql_error()); Det lyder underligt hvis det ikk virker, jeg gør det selv på nøjagtig samme måde. ellers prøv at byt $_GET ud med $_REQUEST er lidt svært da jeg ikk ved hvordan du har din form.
flatoy, hvis du kan indsætte ' uden at foretage dig noget, er det fordi din server har magic quotes aktiveret. Så escaper php automatisk ved submit
Jeg takker mange gange for dit svar. gider du lige svare så jeg kan give dig point ksoren ?
Vi tilbyder markedets bedste kurser inden for webudvikling