symfony - Symfony 2.8 两个数据库连接
问题描述
我需要连接到一个外部数据库,我只需要在一个表中做一个简单的查询,所以我认为我不需要创建一个新的实体管理器。我相信所有配置都设置正确,但我仍然没有连接到新数据库。所以我错过了一些东西,但找不到什么,这是我的文件:
# Doctrine Configuration
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: '%kernel.root_dir%/data/data.db3'
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
#path: '%database_path%'
database2:
driver: pdo_mysql
host: '%database2_host%'
port: '%database2_port%'
dbname: '%database2_name%'
user: '%database2_user%'
password: '%database2_password%'
charset: UTF8
orm:
auto_generate_proxy_classes: '%kernel.debug%'
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
parameters:
#Set_Goals Database
database_host: 127.0.0.1
database_port: null
database_name: set_goals
database_user: root
database_password: null
#Database2 Database
database2_host: 127.0.0.1
database2_port: null
database2_name: second
database2_user: root
database2_password: null
Repository:
public function getAccounts(){
$conn = $this->getEntityManager()->getConnection('database2');
$sql = 'SELECT * FROM leme_account';
$stmt = $conn->prepare($sql);
$stmt->execute();
return $stmt->fetchAll();
}
错误:执行“SELECT * FROM leme_account”时发生异常:
SQLSTATE [42S02]:未找到基表或视图:1146 表 'set_goals.leme_account' 不存在
set_goals 数据库是默认连接。
如果我在这里遗漏了一些非常简单的东西,请提前致谢,但我是 Symfony 和一般编程的新手,我遵循了文档和一些相关问题,但无法使其工作。
解决方案
与此同时,我发现了问题......这是一个新手错误。我将我的方法放在另一个实体的存储库中。当我直接添加到控制器时,它起作用了。感谢您的回答。
推荐阅读
- xcode - 运行时Xcode断点期间的可拖动指令指针?
- ios - 使用代码布局时如何防止视图进入UITabBar
- ios - 在下拉项目选择中获取 TableViewCell 索引为零
- php - Codeigniter:如何通过传递 id 使用两个表从 id 获取数据
- ethereum - eth.getBalance() 和 eth.getBlock("latest").number 返回 0
- javascript - 将样式应用于特定的 v-for 元素
- c# - 选择重复对象的所有数据
- python - 电子邮件 Python 脚本输出
- javascript - websockify ws.send 没有向 telnet 服务器发送字符串
- python - Nelder-Mead 优化中的终止容差