入口文件操作thinkORM引发的报错COM_STMT_PREPARE response size

admin

问题描述

因为是docker-compose启动,数据库可能没 webman容器启动快,导致报错,所以现在要做个延迟启动,但是发现一个问题.
入口文件操作thinkORM引发的报错Wrong COM_STMT_PREPARE response size. Received 1 in /app/vendor/topthink/think-orm/src/db/PDOConnection.php:762
只要去掉了这个do while就没问题

程序代码

#!/usr/bin/env php
<?php

use Webman\Config;
use think\facade\Db;
require_once __DIR__ . '/vendor/autoload.php';
echo '正在自检....'.PHP_EOL;

Config::load(config_path(), ['route']);
$dbEngine=config('thinkorm');
Db::setConfig($dbEngine);
$dbok=false;

do{
    try {
        $a=\app\model\Users::count('id');
        var_dump($a);
    }catch (\Exception $exception){
        echo '数据库尚未启动,3秒后重试。'.PHP_EOL;
        sleep(3);
        continue;
    }
    $dbok=true;
}while($dbok==false);

echo '系统初始化完毕,正在运行'.PHP_EOL;

support\App::run();

截图报错信息里报错文件相关代码

截图

939 1 1
1个回答

admin

已经解决:入口文件使用完毕,通过orm关闭conn

Db::connect()->close();
echo '系统初始化完毕,正在运行'.PHP_EOL;

  • 暂无评论
年代过于久远,无法发表回答
×
🔝