yii2 上的多个数据库连接

2023-12-26

我正在尝试在 yii2 框架上使用多个数据库连接。在 config 文件夹内的 db.php 文件下,我有这段代码:

return [
    'class' => 'yii\db\Connection',
    'components' => [
        'db1' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=new',
            'username' => 'root',
            'password' => 'password',
            'charset' => 'utf8',
        ],
        'db2' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=old',
            'username' => 'root',
            'password' => 'password',
            'charset' => 'utf8',
        ],
    ],
];

在模型文件夹下的 test.php 中,我有以下内容...

namespace app\models;

use Yii;
use yii\base\Model;
use yii\db\Query;

class GetAds extends Model
{
    public function ads()
    {

        $test = Yii::$app->db1->createCommand((new \yii\db\Query)->select('*')->from('members'))->queryAll();

    }

当我尝试访问时,收到此错误消息“获取未知属性:yii\web\Application::db1”

我该如何解决这个问题?我实际上已经遵循了这个指南多个数据库连接和 Yii 2.0 https://stackoverflow.com/questions/27254540/yii-2-0-multiple-database-connection

我哪里做错了?

最糟糕的是,我设置只使用一个数据库......在我的模型上,我使用这段代码......

    namespace app\models;

    use Yii;
    use yii\base\Model;
    use yii\db\ActiveRecord;
    use yii\db\Query;

    class GetAds extends ActiveRecord
    {
        public static function tableName()
        {
            return 'ads_page';
        }

        public static function ads()
        {

            $count=(new \yii\db\Query)->from('ads_page')->count('*'); 
    }
}

我收到这个错误

Database Exception – yii\db\Exception
could not find driver
↵
Caused by: PDOException
could not find driver

为什么使用 yii2 这么难?我从这里关注了一切http://www.yiiframework.com/doc-2.0/guide-db-dao.html http://www.yiiframework.com/doc-2.0/guide-db-dao.html

请帮忙


我已经解决了这个问题。这可能会帮助其他有需要的人。

在 config/web.php 下,我添加了这一行“'db2' => require(__DIR__ . '/db2.php'),“就在这个声明下”'db' => require(__DIR__ . '/db.php'),“(不带引号)

并使用与 db.php 中相同的代码在 config 文件夹下创建另一个新的 db2.php 文件:

<?php

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=test2',
    'username' => 'root',
    'password' => 'password',
    'charset' => 'utf8',
];

并调用第一个数据库。我用这个:

$row = Yii::$app->db->createCommand("SELECT * FROM test")->queryOne(); 

要从第二个数据库查询表,我使用以下命令:

$row = Yii::$app->db2->createCommand("SELECT * FROM test2")->queryOne();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yii2 上的多个数据库连接 的相关文章

  • 当存在联系时如何为数组分配排名号

    当尝试为数组中存在平局的数值分配排名时 我很难知道从哪里开始 因此 例如 我需要像下面这样转换一个数组 myarray 4 76 34 13 34 到另一个数组中 例如 myarray2 1 5 3 5 2 3 5 基本上 当相同的数字在数
  • 如何通过键查找最大和最小日期

    我有一个数组 a array 2010 05 03 gt 100 2010 05 04 gt 400 2008 05 01 gt 800 2011 01 01 gt 800 我如何找到最大值和最小值key date 例如 max gt 20
  • 如何在 Laravel 5.5 中编辑“页面因不活动而已过期”的视图

    在 Laravel 5 5 中 当您使用 CSRF 保护 默认情况下 并且在长时间不活动后发送发布请求时 您将收到此错误页面 屏幕截图 我对此错误表示同意 但是 我需要更改此错误的视图 文本以确保与我的应用程序风格和语言相匹配 关于如何编辑
  • 如何在 PHP 中正确分割路径

    执行以下操作的最佳方法是什么 我通过 AJAX 请求获取路径 e g dir1 dir2 dir3 dir4 我需要在我的网页上这样展示它 dir1 gt gt dir2 gt gt dir3 gt gt dir4 它们每个都是 html
  • Laravel 5 与 SAML 2 和现有 IDP 集成

    我使用 Laravel 5 我正在尝试将 SAML 2 0 与其集成 我找到了这个包 https github com aacotroneo laravel saml2 https github com aacotroneo laravel
  • 将 SQL 中的数据存储在数组中

    我正在尝试将 sql 数据库中的数据存储到数组中 目前我有这个 query mysql query SELECT FROM InspEmail WHERE Company LIKE company while row mysql fetch
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • 如何让MySQL数据库完全在内存中运行?

    我注意到我的数据库服务器支持内存数据库引擎 我想让一个已经运行 InnoDB 的数据库完全在内存中运行以提高性能 我怎么做 我探索了 PHPMyAdmin 但找不到 更改引擎 功能 假设您了解注释中提到的使用 MEMORY 引擎的后果 并且
  • 使用 php 将 HLS Segment (ts) 视频转换并加入到 mp4

    你好我正在使用这个工具 https github com Ejz HLSDownloader https github com Ejz HLSDownloader将 HLS 视频片段从 m3u8 播放列表下载到 ts 文件中 不 我不知道如
  • CSV 从 UTF8 到 ISO-8859-1

    我正在尝试修改我的 CSV 导出 但它不会将我的 CSV 从 UTF 8 转换 保存为 ISO 8859 1 请问我做错了什么吗 实际上自从修改了这个之后 我得到了一个空的 CSV 文件 php 7 0 x function my Gene
  • 需要 mysqli_fetch_all 的替代方案

    我有一个 php mysqli 代码 可以找到一个我的本地服务器 但是在我的服务器上使用它时 我得到了一个 Fatal error Call to undefined function mysqli fetch all in home3 t
  • URL 重写帮助

    RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php q 1 L 这应该将任何 url 重写为 index php q url 并且它可以工作 反正
  • 使用 DOM 获取 div 的内容(包括子标签)

    我正在使用 DOM 来获取 div 标签的内容 但内部 html 部分未显示 功能是 dom new DOMDocument libxml use internal errors true dom gt loadHTMLFile url l
  • 疯狂的 crond 行为。不断使 bash 进程失效

    我有一个看起来像这样的 crontab SHELL bin bash PATH sbin bin usr sbin usr bin MAILTO root HOME 0 59 var www html private fivemin zda
  • 使 div 的大小与其内部图像的大小相同

    我有一个带有以下代码的div HTML div img src img logo png div CSS div imgContainer width 250px height 250px padding 13px 问题是用户可以编辑图像大
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml
  • 如何显示不同页眉的页面? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在为我的学校项目开发网站 但我遇到了一个问题 我在每个页面上显示一个标题 我的标题之一包含登录表单 另一标题包含用户名 搜索栏等 问题是
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日
  • 哪个 PHP 5 版本最常用?

    当我开发将在不同配置的客户端 Web 服务 通常使用共享托管 上使用的应用程序时 我应该假设大多数 Web 服务器都具有哪个 PHP 5 版本 例如 5 2 x 5 3 x 等 在所有使用 PHP 版本 5 的网站中 有 84 9 使用版本

随机推荐

  • POSIX 取消点应该如何表现?

    我一直在研究 glibc nptl 取消点的实现 并将其与 POSIX 进行比较 除非我弄错了 否则它是完全错误的 使用的基本模型是 int oldtype LIBC ASYNC CANCEL switch to asynchronous
  • SQL Server CPU 利用率恒定为 80%

    我们在专用 VPS 上有一个小型 目前 Asp Net MVC 5 网站 当我转到服务器并启动任务管理器时 我看到 SQL Server Windows NT 64 位 正在使用大约 80 的 CPU 和 170MB RAM 而 IIS 使
  • 为什么我的备用图标可以在 iPhone 上使用,但不能在 iPad 上使用?

    当我构建并部署到 iPhone 时 我可以调用UIApplication shared setAlternateIconName正好 当我在 iPad Pro 上运行时 出现以下错误 错误域 NSCocoaErrorDomain代码 4 该
  • 在finally 块中抛出异常是否是一种好的做法?

    有一个好问题当从finally中抛出异常时 Catch块不会被评估 https stackoverflow com questions 12150994 catch block is not being evaluated when exc
  • 何时导入 uno

    使用 Ubuntu 12 04 和 LibreOffice 3 5 7 2 我正在尝试了解 Libre Office 中的 Python 脚本 我在网上阅读了很多内容并查看并运行了一些示例 我注意到有些示例导入 uno 有些则不导入 它们都
  • asp.net requiredfieldvalidator 在visible=false 时不起作用

    我的 asp net 站点中有一些必需的字段验证器 我想将其设置为不可见 直到需要为止 但是当我将它们设置为visible false时它们不会触发 如果将它们设置为visible true 它们就会起作用 这是该控件的正确行为还是错误的行
  • MonoTouch 绑定到 ObjectiveC 库不起作用

    the h import
  • vscode 更漂亮的设置

    我最近换了一台新电脑 但很难找到更漂亮的设置 我认为它更漂亮 可能是 eslint 这张 gif 说明了正在发生的事情 http g recordit co H871hfT9Sv gif http g recordit co H871hfT
  • 如何将文件设置为“适合一页上的所有列”设置

    我有一个要求 由 Apache POI 生成的文件需要生成一个带有以下内容的文件使所有列适合一页设置 https stackoverflow com questions 25741049 how to set fit all columns
  • 在 hive 中生成星型模式

    我来自 SQL 数据仓库世界 我通过平面提要生成维度和事实表 在一般的数据仓库项目中 我们将数据源分为事实和维度 前任 我对 Hadoop 完全陌生 我开始知道我可以在 hive 中构建数据仓库 现在 我熟悉了使用 guid 我认为它可以用
  • 在 Eclipse 中,如何添加工具栏按钮来运行批处理文件?

    假设我有一个批处理文件C myscript bat 如何向 eclipse 添加一个工具栏按钮 按下该按钮时运行批处理文件 Under 运行 gt 外部工具 gt 外部工具配置 您可以定义任何外部程序 包括Windows批处理文件 定义后
  • 当我尝试读取正在写入的文件时,为什么会收到未处理的异常:System.IO.IOException?

    我有两个 C 应用程序 一个是逐行读取文件 文件 A 并将其内容写入另一个文件 文件 B 第二个应用程序使用 FileSystemWatcher 来查看文件 B 的更新时间 并报告程序启动时和文件更改时之间的行号差异 这就是我现在想做的所有
  • golang中init()和sync.Once的区别

    我看到了在 Go 中使用单例模式的两种方法 Using init 功能 Using sync Once在同步包中 有什么区别 哪一个在线程安全方面更好 If init 解决了所有问题然后是什么sync Once用于 Package init
  • PhantomJS:将 Javascript 添加到网页(而不是 PhantomJS 环境)

    我想添加一个 JavaScript标签 包含或来源不受信任的代码 到网页 PhantomJS 访问 并使页面的行为就像页面最初包含该标签一样 includeJs injectJs 不做我需要的事情 他们将代码注入到我的 PhantomJS
  • 材质 Angular Accordion 标题/标题高度

    所以我一直在尝试在我的 Web 应用程序开发中采用 Materials Accordion 然而 随着内容的增长 使标题的大小扩大会遇到一些麻烦 我的标题预计有相当多的行来提供摘要 而不仅仅是 1 行 如果我对材质标题高度进行硬编码 则会导
  • SQL Profiler 模板丢失 - 需要额外的修复步骤吗?

    我遇到的问题是找不到 SQL Profiler 模板 我正在使用 SQL Server Profiler 10 0 1600 22 安装 并且正在远程连接到 2008 R2 所以我知道 修复 您可以将模板文件夹从同一目录中的 100 复制到
  • 打开场景生成器时出错

    我正在使用 Javafx Eclipse 制作一个程序 当我使用场景生成器打开该程序时出现错误 这是错误 Opening the file with SceneBuilder failed Try setting the absolute
  • python导入cv2错误

    每当我尝试导入 cv2 时 我总是会收到此错误 import cv2 Traceback most recent call last File
  • R tryCatch 处理一种错误

    我想知道这是检查 tryCatch 函数类型的错误或警告的方法 例如在 Java 中 try driver findElement By xpath locator click result true catch Exception e i
  • yii2 上的多个数据库连接

    我正在尝试在 yii2 框架上使用多个数据库连接 在 config 文件夹内的 db php 文件下 我有这段代码 return class gt yii db Connection components gt db1 gt class g