2011-01-21 41 views
2

我的mysql_real_escape_string被忽略。这让我很难过,因为我觉得我错过了很小的东西。mysql_real_escape_string不工作

的$的htmlText变量来自哪里文本呈现为HTML即与标签等TinyMCE的编辑

<?php 
    /*--------GLOBAL PROCEDURES--------*/ 
    session_start(); 
    require "../scr/config-data.php.inc"; 
    mysql_connect($host,$username,$password) or die 
    ("Could Not Connect".mysql_error()); 
    mysql_select_db($db) or die ("Could Not Connect".mysql_error()); 

    /*-----SEVERAL SELECT/INSERT QUERIES, ALL WORKING FINE-----*/ 

    /*--------SPECIFIC PROCEDURES-------*/  
    if($_POST['submit']){ 
     //Check that POS has been chosen 
     $htmlText = mysql_real_escape_string($_POST['cust']); 
     if($htmlText != ""){ 
      mysql_query("INSERT INTO table VALUES(NULL, '$htmlText')") or die(mysql_error()); 
     }else{ 
      $feedback = "Please Enter some text into the editor"; 
     } 
    } 

    /*--------CLOSING PROCEDURES-------*/ 
    mysql_close(); 

?> 

奇怪的是,它是改编自这样的作品,只有改变变量的脚本名。我在MySQL语法中遇到错误。它也没有逃避文本中的HTML,所以我得到这个错误:

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 'order VALUES(NULL, ' 

sfgafgafs 

')' at line 1 
+0

什么错误信息,你得到什么例如输入? – Gumbo 2011-01-21 14:26:08

+0

给出上述错误信息,但逃脱当特定领域应该是

sfgafgafs

,但它呈现为HTML – 2011-01-21 14:27:14

+0

您的表名为“订单”?尝试将其更改为``order``(反引号) – labue 2011-01-21 14:29:04

回答

6

从你提供的错误消息,它看起来像你正在使用order为这恰好是一个MySQL reserved word表名。

试着把它放回去。

0

看起来像你缺少的链接标识符?

串mysql_real_escape_string(字符串$ unescaped_string [,资源$ link_identifier])

+0

您知道链接标识符是可选的吗? “如果未定义link_identifier,则使用最后一个MySQL连接。” – 2011-01-21 14:31:58

+0

我认为这是必需的,下一次生病只是发表评论,所以我不会失分! – Drewdin 2011-01-21 14:45:27

2

mysql_real_escape_string不会转义任何html。它只能转义为\ x00,\ n,\ r,\,',“和\ x1a。

您的表名不应该是”order“,因为它是一个SQL特殊字词,您应该重命名它或确保你把它放在反引号

2

我也相信原因是由于表名是'订单',因为mysql采取它就像你试图使用插入查询中的order子句,将表名改为别的东西..

相关问题