Laravel发布来自另一个域数据库错误的请求

时间:2018-01-29 11:32:24

标签: php mysql sqlite pdo laravel-5.5

当我尝试从另一个使用sqlite的网站向我的API发出POST请求时,我的API服务器上出现了奇怪的错误,这里有一些跟踪:

production.ERROR: SQLSTATE[HY000] [1049] Unknown database 'onclinic.sqlite' {"exception":"[object] (Doctrine\\DBAL\\Driver\\PDOException(code: 1049): SQLSTATE[HY000] [1049] Unknown database 'onclinic.sqlite' at D:\\OSPanel\\domains\\onclinic-engine\\vendor\\doctrine\\dbal\\lib\\Doctrine\\DBAL\\Driver\\PDOConnection.php:47, PDOException(code: 1049): SQLSTATE[HY000] [1049] Unknown database 'onclinic.sqlite' at D:\\OSPanel\\domains\\onclinic-engine\\vendor\\doctrine\\dbal\\lib\\Doctrine\\DBAL\\Driver\\PDOConnection.php:43)
D:\\OSPanel\\domains\\onclinic-engine\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connectors\\Connector.php(64): Doctrine\\DBAL\\Driver\\PDOConnection->__construct('mysql:host=127....', 'root', '', Array)
D:\\OSPanel\\domains\\onclinic-engine\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connectors\\Connector.php(43): Illuminate\\Database\\Connectors\\Connector->createPdoConnection('mysql:host=127....', 'root', '', Array)
D:\\OSPanel\\domains\\onclinic-engine\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connectors\\MySqlConnector.php(24): Illuminate\\Database\\Connectors\\Connector->createConnection('mysql:host=127....', Array, Array)
D:\\OSPanel\\domains\\onclinic-engine\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connectors\\ConnectionFactory.php(183): Illuminate\\Database\\Connectors\\MySqlConnector->connect(Array)

我真的不明白,为什么我的API服务器因为sqlite数据库而失败,如果所有配置都设置为使用mysql

'default' => env('DB_CONNECTION', 'mysql'),
'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_general_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

更新

如果我要向邮递员发送请求,一切正常,但GuzzleHttp让我烦恼。

1 个答案:

答案 0 :(得分:0)

好的,我知道了问题所在。 Laravel使用PHP环境,因此,如果未缓存laravel配置,则我的API服务器从API客户端的.env文件获取值,因此当我向本地计算机上的API服务器发送请求时,它将使用API​​客户端初始化时初始化时环境设置的数据库名称。 为避免这种情况将您的配置缓存在服务器上。