Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将HTML文本存储到数据库字段时出现问题_Php_Mysql - Fatal编程技术网

Php 将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)

我想以html等效形式在数据库中存储特定的文本字段

$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
。列字符集和排序规则将自动指定给表默认值。