所以我在页面上有一个输入,我将输入的值传递给ajax POST请求。我已将所有内容记录在我的javascript文件中,并且所有内容都符合预期。
在我的php文件中,我将其设置为$ message = $ _POST [“message”];并且像这条消息一样插入我的表格,并将VALUES设置为$ message。
在我的成功回调中$ result = mysql_query($ sql);我正在使用$ message传递一个数组。然后我将它记录在我的ajax成功回调中,当我发送数字时它会正确记录,但是当我发送字符或字符和数字组合时$ result失败。
听起来这个列设置为INT,但事实并非如此。我尝试过VCHAR,TEXT,LONGTEXT。我甚至删除了专栏并制作了一个新专栏。这是我如何使用它varchar(120)utf8_bin否无。 我甚至试图在php中强制转换为字符串。
有什么想法吗?我喜欢侦探工作,试图弄清楚自己,但我很难过。
感谢您的帮助。
更多信息: 这就是我消毒$ message的方式。
$ message = $ _POST [“message”];
$ message = strip_tags($ message);
$ message = htmlspecialchars(mysql_real_escape_string($ message));
答案 0 :(得分:0)
那是错的。
mysql_query("insert into `tablename` (`message`) values "
."('".mysql_real_escape_string($_POST['message'])."')");
你需要的一切。 strip_tags
和htmlspecialchars
不适合插入数据库。注意字符串需要引号的事实!