2014-03-02 35 views
-1

PHP代碼手冊:您的SQL語法有錯誤;檢查對應於你的MySQL服務器版本正確的語法使用附近的

   if (isset($_REQUEST['SUBMIT'])) { 
        $name=mysql_real_escape_string($_REQUEST['menname']); 
        $dic=mysql_real_escape_string($_REQUEST['pagedec']); 
        $ID=$_REQUEST['id']; 
        $query=mysql_query("UPDATE `header_menu` SET `name`=$name,`contant`=$dic WHERE `id` = $ID"); 
        if ($query == true) { 
         echo '<h1>Updated sucessfully. <a href="man_menu.php">Click</a> for manege header links</h1>'; 
        }else{ 
         echo mysql_error(); 
        } 
        # code... 
       }else{ 

        header('Location:404.php'); 
       } 

表單代碼:

<div class="maincontent noright"> 
     <div class="maincontentinner"> 

      <ul class="maintabmenu"> 
       <li class="current"><a href="">update header Menu [<?php echo $get_header_record_final['name']; ?>]</a></li> 
      </ul><!--maintabmenu--> 

      <div class="content"> 

       <form class="stdform stdform2" id="banner" method="post" action="edit_header_done.php" enctype="multipart/form-data"> 




          <p> 
           <label>Menu Name</label> 
           <span class="field"><input type="text" name="menname" class="longinput" value="<?php echo $get_header_record_final['name']; ?>"/></span> 
          </p> 
          <p> 
           <label>Menu Page contant</label> 
           <span class="field"><textarea id="body" name="pagedec"><?php echo $get_header_record_final['contant']; ?></textarea></span> 
          </p> 




          <p> 
           <label></label> 
           <span class="field"> 

        <input type="hidden" name='id' value="<?php echo $ID ?>"> 

         <button type="submit" class="stdbtn btn_black" style="opacity: 1;" name="SUBMIT">Update Now</button> 
         <input type="reset" class="reset radius2" value="Reset" /></span> 
          </p> 



       </form> 

我從我的網站上創建我的管理面板。在這個網站我添加了一些先進功能;當我更新新的一頁我得到這個錯誤:

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 's need and maximizing stake holders value, AIF sees its customers as a business ' at line 1

+1

字符串值中去單引號。 – mario

+0

'mysql_real_escape_string'應該用於在[字符串文字](http://dev.mysql.com/doc/refman/5.5/en/string-literals.html)中使用的值;如果你不把它們放到字符串文字中,'mysql_real_escape_string'不會保護你免受SQL注入。就像在這種情況下一樣。 – Gumbo

+0

請不要使用'mysql_'。它已被棄用,並且不支持預準備語句。對準備好的語句或PDO使用'mysqli_'。這也可以避免這個問題。 –

回答

0

你錯過的字符串值引號包圍在您的查詢:

$query=mysql_query("UPDATE `header_menu` SET `name`=$name,`contant`=$dic WHERE `id` = $ID"); 

應該是:

$query=mysql_query("UPDATE `header_menu` SET `name`='$name',`contant`='$dic' WHERE `id` = $ID"); 
相關問題