2014-03-02 18 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"); 
相关问题