ckeditor存储数据php

时间:2015-05-15 08:45:32

标签: php mysql

使用richtext是我的新手,但用户必须能够插入图片或更改文字。所以我正在使用ckeditor,但我遇到了麻烦。 当用户写入富文本时,他可以使用撇号和彗差来编写内容。 我将用一个例子。让我们想象一下我想写:

It's quite difficult to open a picture, a file  blablabla

问题在于插入查询看起来像那样

Insert into tab (txt1,txt2) values ('value1','value2') 

如果用户使用逗号或撇号,则无法正确插入richtext。此外,我在MySQL数据库中使用longtext来存储文本。

我的问题是:

  • 如何存储用户编写的富文本
  • 我的MySQL数据库中的列应该是什么类型才能正确存储richtext以便能够将其归还

我遇到的问题是

    Erreur SQL !INSERT INTO detail_article(ID,Problem,Num,URL,Solving,Description) VALUES(16,'Chrome : clearing datas',4,'','

    \r\nCHROME CACHE CLEARING :

    \r\n\r\n
   blablabala

    \r\n\r\n

   In the 'windows explorer', do the fallowing statment....blablabla


    \r\n','')

这是我的文字样本,但我认为问题是由引号和昏迷引起的

1 个答案:

答案 0 :(得分:0)

您的问题必须来自您的PHP脚本,它似乎不会逃避它发送的数据。

如果它不使用包含逗号和撇号的richtext,那么发送到您的数据库的查询可能无法逃脱。

例如,如果您有这样的内容:

$value2 = "Catch',em all";
$value1 = "Hello boys";

如果您尝试将其存储在数据库中而不转义它,那么生成的SQL查询将如下所示:

INSERT INTO tab (value1, value2) VALUES ('Hello boys', 'Catch', em all);

由于语法不正确,这将是一个不正确的SQL语句。

如果你使用像PDO :: quote()这样的转义方法,你的输入将以安全的方式插入,不会产生任何错误(语法)。

确保您的脚本确实逃脱了您使用PDO :: quote()(https://php.net/manual/fr/pdo.quote.php)或mysqli_real_escape_string(http://php.net/manual/fr/mysqli.real-escape-string.php

发送的参数