注册

pdo模式查询大量数据时PHP-FPM退出

DM_919317 2021/09/29 1054 2

【DM版本】:DM8
【操作系统】:centos7
【CPU】:intel
【问题描述】:
通过curl方式查询接口,大概1M左右的数据,nginx提示502,查看后发现是FPM意外退出;使用的PDO方式查询,但是如果使用DM方式则正常;
php的memory_limit与响应时间等都已设置足够大了,nginx的fastcgi_buffer等也相应进行设置了。
php版本:8.0
nginx提示:
6d634e7a36f31529761fdeb2b299c86.png
nginx错误日志:
06fcf7f76187abb19f127537b4f7c93.png
php错误日志:
image.png
测试代码:

<?php $dm_conf = array( 'host' => '127.0.0.1:5236', //连接地址及端口 'db' => 'TOP', //数据库名 'db_user' => 'TOP', //用户名 'db_pwd' => 'Tion', //密码 ); $pdo = new \PDO("dm:host=" . $dm_conf['host'] . ";dbname=" . $dm_conf['db'] . "", $dm_conf['db_user'], $dm_conf['db_pwd'] ); $pdo->exec('SET SCHEMA TOP;'); $sql = "select cur_code, border_center_lng, border_center_lat, border_points from sp_admin_area_border where sp_admin_area_border.CUR_CODE in (440303000000, 440304000000, 440305000000, 440306000000, 440307000000, 440308000000, 440309000000, 440310000000, 440311000000, 440361000000, 440365000000)"; $stmt = $pdo->prepare($sql); if ($stmt === false) { var_dump($pdo->errorInfo()); die; } $rs = $stmt->execute(); if ($rs) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { // border_points为长文本字段,会自动被截取至255个字符 var_dump($row); } }

cli下执行是正常的,但是长文本会被自动截断为255个字符;请问该如何解决此问题?

回答 0
暂无回答
扫一扫
联系客服