PHP变量大小有限制吗?

时间:2011-07-07 15:00:57

标签: php mysql

我需要知道PHP是否存在可变限制大小。我从SQL数据库中获取字符串字段,并使用echo在网页上查看它。我遇到的问题是,当我查看网页时,我看不到数据库字段中的所有内容。 PHP变量可以有多少限制?有没有办法让PHP从数据库中读取整个条目而不是中途停止?

6 个答案:

答案 0 :(得分:8)

变量可以容纳的数据量仅受PHP可用内存量的限制。如果达到或超过此限制,页面执行将结束,您可能会遇到PHP错误。变量中包含的数据不会被静默截断。

请注意,大多数数据库字段类型 do 对可以存储在其中的数据量有明确的限制。您可能希望确认数据确实存在于数据库中,并且在插入时不会被截断。

您还应该通过查看HTML源来检查输出。如果在查看源时显示预期数据,但在浏览器中呈现页面时不显示,则可能需要转义数据以删除浏览器正在解释为标记的任何HTML实体。

答案 1 :(得分:7)

变量大小受PHP可用内存量的限制。要增加PHP的内存限制,您可以修改memory_limit文件中的php.ini,如果您在服务器上可以使用该选项。否则,您可以在脚本的开头使用ini_set

ini_set('memory_limit','16M');

答案 2 :(得分:2)

这不太可能是内存问题。 PHP不会默默地将字符串缩小到大小,它只会因为内存不足而死掉。

您输出的字符串是否被截断(结束切断),或者中间缺少部分?请记住,在浏览器中查看时,任何看起来像HTML标记的内容都将被解释为。如果您的文本在某处包含<,那么之后的任何内容都可能被隐藏为未知标记的一部分,直到稍后找到>

它也不太可能是数据库问题,因为如果数据大小超过max_allowed_packet限制,MySQL会发出错误。

答案 3 :(得分:2)

解决方案是ini_set('odbc.defaultlrl', 65536);

答案 4 :(得分:0)

变量大小仅受PHP可用内存量的限制。要增加PHP的内存限制,请参阅以下文章:

http://drupal.org/node/207036

关于您的问题,必须有一些其他因素影响您的输出。请发布您的代码以获取帮助。

答案 5 :(得分:0)

您可以将整个页面(html,css和javascript)保存在一个变量中,然后回显它。您的字符串应该很好记住,数据库中的长度是有限制的。如果您在db尝试较大字段类型中遇到字符串问题的长度,则varchar为255。