【问题标题】:Base table or view not found: 1146 Table doesn't exist未找到基表或视图:1146 表不存在
【发布时间】:2020-01-23 18:29:19
【问题描述】:

我的情况很奇怪。 以下代码在我的本地主机上运行,​​但在我的服务器上却无法运行。

我收到错误“未找到基表或视图:1146 表 'beteu.bets' 不存在”。模型没有在正确的数据库中查找,这就是它找不到表的原因。但他不应该查看那个数据库。

在函数中,我正在调用方法,我进行了以下测试以检查什么是活动数据库:

DB::connection()->getPdo();
if(DB::connection()->getDatabaseName()){
    echo "Yes! Successfully connected to the DB: " . DB::connection()->getDatabaseName();
}
die();

因此,结果我得到了正确的数据库“soccerbets”,但我尝试像这样在“bets”表中输出所有结果:

DB::connection()->getPdo();
if(DB::connection()->getDatabaseName()){
    echo "Yes! Successfully connected to the DB: " . DB::connection()->getDatabaseName();
    print_r(Bet::get());
}
die();

在这里我又遇到了奇怪的错误: SQLSTATE [42S02]:未找到基表或视图:1146 表 'beteu.bets' 不存在

这是Bet模型的代码:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Bet extends Model {

    protected $fillable = [
        'ip', 'site', 
    ];

}

我也尝试在该模型中显式定义数据库,但没有任何反应。

请帮我找出那个愚蠢的错误:)

【问题讨论】:

    标签: mysql laravel


    【解决方案1】:

    您在模型中寻找的变量是

    protected $connection = "connection of your second db name";
    

    您还必须在 /config/database.php 中定义一个新的连接(数据库)

    如果您不想在版本控制中公开您的凭据,您还必须添加至少一个新的 .env 变量来设置连接。

    所以类似于你的默认“mysql”连接,你可以添加一个新的连接,你可以在你的.env中设置默认连接

    【讨论】:

    • 感谢您的评论,但请检查最后一句之前的句子:)
    • @VinceCarter 根据你的 sn-p,你没有那样做。
    猜你喜欢
    • 2015-12-23
    • 2018-05-31
    • 2020-07-20
    • 2017-07-22
    • 2018-10-17
    • 1970-01-01
    • 2014-10-08
    • 2019-01-28
    • 2017-08-02
    相关资源
    最近更新 更多