Php 将HTML文本存储到数据库字段时出现问题
我想以html等效形式在数据库中存储特定的文本字段Php 将HTML文本存储到数据库字段时出现问题,php,mysql,Php,Mysql,我想以html等效形式在数据库中存储特定的文本字段 $str = htmlentities($str, ENT_QUOTES, "UTF-8"); 其中数据库中与$str变量相关的特定列具有列字符集:utf8&列排序:utf8\u bin。但值存储在同一个BLOB表单中。如果希望数据库中有文本,请不要使用BLOB字段类型。使用TEXT,VARCHAR等。BLOB用于二进制数据,在PHP中执行的任何操作都不会改变它在数据库中的存储方式。BLOB在MySQL中是一种数据类型,与字符编码(utf8)
$str = htmlentities($str, ENT_QUOTES, "UTF-8");
其中数据库中与
$str
变量相关的特定列具有列字符集:utf8
&列排序:utf8\u bin
。但值存储在同一个BLOB表单中。如果希望数据库中有文本,请不要使用BLOB
字段类型。使用TEXT
,VARCHAR
等。BLOB
用于二进制数据,在PHP中执行的任何操作都不会改变它在数据库中的存储方式。BLOB
在MySQL中是一种数据类型,与字符编码(utf8)或排序规则不同。如果要更改数据类型,则必须使用
ALTER TABLE tbl_name MODIFY col_name TEXT;
或者
VARCHAR()
或任何您想将其更改为的内容。如果存储大型HTML页面,请使用LARGETEXT()
BLOB也可以用于文本数据,但不会应用字符集翻译。但是BLOB
是自动创建的。我已经使用列字符集:utf8和列排序:utf8\u bin为特定列创建了文本类型
,但在显示或浏览该列时,其显示方式如下[BLOB-6 B]
。这是因为您的列字符集:utf8
和列排序:utf8\u bin
分配不适合您尝试执行的操作。创建新表列时,需要使用altertable tbl\u name ADD col\u name TEXT
进行查询,数据类型将为TEXT
。列字符集和排序规则将自动指定给表默认值。