【问题标题】:Numbers insert into database but not characters or numbers/characters数字插入数据库,但不插入字符或数字/字符
【发布时间】:2014-04-02 23:20:14
【问题描述】:

所以我在页面上有一个输入,我将输入的值传递给一个 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));

【问题讨论】:

  • 附带说明,您应该避免在新代码中使用mysql_*,它从 PHP 5.5.0 开始正式弃用。相反,您应该使用mysqli_*PDO。查看上述 API 的比较here

标签: javascript php mysql ajax


【解决方案1】:

错了。

mysql_query("insert into `tablename` (`message`) values "
            ."('".mysql_real_escape_string($_POST['message'])."')");

所有你需要的。 strip_tagshtmlspecialchars 适合插入数据库。注意字符串需要引号!

【讨论】:

  • 酷,谢谢。我会解决这个问题的。仅供参考,我还将地理坐标和谷歌地图 api 数据插入表中,并且正在工作。当我添加消息列时,我遇到了问题。谢谢!
猜你喜欢
  • 2011-08-02
  • 2020-05-25
  • 2016-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多