Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
用户在调用mysqli_real_connect时从PHP脚本接收到一条截断消息(最多19109个字符)_Php_Mysql_Apache2_Mysqli - Fatal编程技术网

用户在调用mysqli_real_connect时从PHP脚本接收到一条截断消息(最多19109个字符)

用户在调用mysqli_real_connect时从PHP脚本接收到一条截断消息(最多19109个字符),php,mysql,apache2,mysqli,Php,Mysql,Apache2,Mysqli,我有一个PHP脚本的问题,它有时返回截断的消息 流程: 用户调用search.php 脚本将处理该请求: a连接到数据库 b使用SimpleXML类构建XML c将SimpleXML类型转换为字符串 d将该字符串打印到客户端 在某些情况下,用户仅接收(输出到浏览器)部分消息 在研究这个问题后,我发现了以下事实: 最大长度为19109个字符->超过该长度,它将被截断 我记录了2.c typeCast XML字符串,发现日志包含完整的XML(不是截断的!) 其他返回更短/更长响应的脚本工作正常

我有一个PHP脚本的问题,它有时返回截断的消息

流程:

  • 用户调用search.php
  • 脚本将处理该请求:

    • a连接到数据库
    • b使用SimpleXML类构建XML
    • c将SimpleXML类型转换为字符串
    • d将该字符串打印到客户端
  • 在某些情况下,用户仅接收(输出到浏览器)部分消息
  • 在研究这个问题后,我发现了以下事实:

  • 最大长度为19109个字符->超过该长度,它将被截断
  • 我记录了2.c typeCast XML字符串,发现日志包含完整的XML(不是截断的!)
  • 其他返回更短/更长响应的脚本工作正常
  • 问题与DB连接有关:

    • 为了检查问题是否与SimpleXML或XML字符串有关,我在#2.d>上打印了一个不同的硬编码XML,它也被截断了

    • 然后,我试图找到导致它的原因(而不同的硬编码XML仍然存在),因此我使用“die;”调试了脚本。然后Iv'e发现,只有调用mysqli_real_connect或mysql_real_connect时,返回值才会被截断

  • 你知道如何解决/调试这个问题吗?

    也许能给你一个答案?简言之,PHP手册指出,这样的函数在PHP中几乎不存在

    如果是这种情况,您可能会看到被截断的输出,因为您启用了隐式刷新,因此在脚本执行期间会立即将响应刷新到浏览器。然后,在某个时刻,脚本调用了mysql\u real\u connect,但它并不存在。这会导致脚本停止执行,因此您会看到部分格式的输出。如果禁用了显示错误,则不会看到错误消息


    因此,请尝试在PHP安装中启用错误输出(
    diplay\u errors
    config指令)。解决这个问题的另一个好方法是检查
    mysql\u real\u connect
    是否真的存在于So?。。。当您从MySQL检索数据或向用户输出数据时,数据是否丢失?我真的听不懂。祝贺这个格式良好的问题,因为它是第一个亲爱的Alin Purcaru,输出中的数据丢失了。但只有当我用同一个脚本连接到数据库时才会发生这种情况。这个问题是否与浏览器有关?例如,如果您使用lynx而不是Firefox触发调用,您会得到整个文档吗?我对Firefox的劣质XML处理有这个问题,它基于流中一个糟糕的UTF-8字符,处理了一个异常的中间文件。