Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 MySQL-用户评论的varchar/varchar2大小_Php_Mysql_Sql - Fatal编程技术网

Php MySQL-用户评论的varchar/varchar2大小

Php MySQL-用户评论的varchar/varchar2大小,php,mysql,sql,Php,Mysql,Sql,我想知道我怎样才能做到以下几点 假设一个用户在为一篇文章提供的评论框中发表了评论。 我想使用varcharsize类型将用户注释存储到MySQL数据库中。 如果我使用varchar100创建表,并且用户注释超过100个字符,我如何适应这些情况 因为我不想限制它的评论大小,因为这是一个像样的大小。 解决方案是否基于在插入之前计算注释的长度。。。? 假设PHP脚本用于处理注释 谢谢您可以使用文本数据类型进行评论。但是,如果您想限制用户使用某些字符,则应该考虑限制HTML控件文本框中的输入数据、输入等

我想知道我怎样才能做到以下几点

假设一个用户在为一篇文章提供的评论框中发表了评论。 我想使用varcharsize类型将用户注释存储到MySQL数据库中。 如果我使用varchar100创建表,并且用户注释超过100个字符,我如何适应这些情况

因为我不想限制它的评论大小,因为这是一个像样的大小。 解决方案是否基于在插入之前计算注释的长度。。。? 假设PHP脚本用于处理注释


谢谢

您可以使用文本数据类型进行评论。但是,如果您想限制用户使用某些字符,则应该考虑限制HTML控件文本框中的输入数据、输入等。让用户知道可以输入多少字符,并将最大字符大小设置为数据库中针对评论字段的一组字符。p> 例如,可以在HTML中的输入类型上使用maxlenght属性

<input type="text" name="textboxname" maxlength="400" />

可以对注释使用文本数据类型。但是,如果您想限制用户使用某些字符,则应该考虑限制HTML控件文本框中的输入数据、输入等。让用户知道可以输入多少字符,并将最大字符大小设置为数据库中针对评论字段的一组字符。p> 例如,可以在HTML中的输入类型上使用maxlenght属性

<input type="text" name="textboxname" maxlength="400" />
改为使用字段。从5.0.3+开始,varchar最多限制为64k个字符。文本可以更高一点

事先计算注释的大小是没有意义的,因为如果当前字段大小太小,则在插入长注释之前必须先修改表。对于一个小的/很少的记录表来说没什么大不了的。但是,随着表的增长,alter将成为一项主要操作,并将在修改表时终止服务器。您不会因一时兴起而改变表格的布局

使用文本,您可以插入从0到n字节的任意数量的文本,其中n是您选择的特定文本类型所允许的最大值。

请改用字段。从5.0.3+开始,varchar最多限制为64k个字符。文本可以更高一点

事先计算注释的大小是没有意义的,因为如果当前字段大小太小,则在插入长注释之前必须先修改表。对于一个小的/很少的记录表来说没什么大不了的。但是,随着表的增长,alter将成为一项主要操作,并将在修改表时终止服务器。您不会因一时兴起而改变表格的布局


使用文本,您可以插入从0到n字节的任意数量的文本,其中n是您选择的特定文本类型所允许的最大值。

除非您希望动态运行alter table SQL命令,否则您不能以这种方式进行调整。如果要将用户限制为varchar列的大小,则应设置表单输入以强制执行该限制

更好的办法是使用一种文本数据类型。仍然会有大小限制,但会更大,远远超过varchars可用的最大255个。超过最大允许大小的数据将被截断。文本值的检索可能比varchar慢,但不一定如此


您可以做的另一件事是拆分超过最大大小的注释,并将每个注释存储为一行。然后,您需要重新组合这些片段以提供完整的注释。这将避免任何大小问题,需要最多的编程,而且可能是最慢的。

除非您想动态运行alter table SQL命令,否则这是一个坏主意,您不能以这种方式进行调整。如果要将用户限制为varchar列的大小,则应设置表单输入以强制执行该限制

更好的办法是使用一种文本数据类型。仍然会有大小限制,但会更大,远远超过varchars可用的最大255个。超过最大允许大小的数据将被截断。文本值的检索可能比varchar慢,但不一定如此


您可以做的另一件事是拆分超过最大大小的注释,并将每个注释存储为一行。然后,您需要重新组合这些片段以提供完整的注释。这将避免任何大小问题,需要最多的编程,并且可能是最慢的。

我非常确定MySQL服务器将截断该值。最好使用文本类型,它将为您提供2^16个字符。此外,您可以使用tinytext,它将为您提供2^8个字符。另外,为什么不限制用户的文本长度…thx,我认为varchar是隐含的,但是文本是有意义的我很确定MySQL服务器会截断这个值。最好使用文本类型,它将为您提供2^16个字符。此外,您可以使用tinytext,它将为您提供2^8个字符
文本就是这样做的。另外,为什么不限制用户的文本长度…thx,我认为varchar是隐含的,但是文本是有意义的