因为是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();
已经解决:入口文件使用完毕,通过orm关闭conn
Db::connect()->close();
echo '系统初始化完毕,正在运行'.PHP_EOL;