php - 什么时候应该使用 RedBean 连接到我的数据库?
问题描述
我正在使用 RedBean 制作注册和登录系统,但我在试图弄清楚何时应该使用 R:setup(); 时遇到了一些麻烦。
首先,我在索引页面的顶部使用 R::setup(即使我不需要从该页面访问我的数据库。我应该这样做吗?)。
接下来,我在函数文件中使用它,在注册和登录期间我会从中调用一些函数:
function checkUidTaken ($uid) {
require_once('../rb.php');
R::setup('sqlite:database.sqlite');
$uids = R::getCol('select uid from admins');
if (in_array($uid, $uids)) {
$result = true;
} else {
$result = false;
}
return $result;
};
function createAdmin ($name, $uid, $pwd) {
require_once('../rb.php');
R::setup('sqlite:database.sqlite');
$pwd = password_hash($pwd, PASSWORD_DEFAULT);
$admin = R::dispense('admins');
$admin->name = $name;
$admin->uid = $uid;
$admin->pwd = $pwd;
R::store($admin);
header('location: ../admin-panel.php');
exit();
};
如您所见,我按函数调用它,但这会导致错误。
已经为此键指定了一个数据库。
据我了解,这是因为我连续两次设置我的数据库。我试图通过在每个函数结束时关闭数据库来解决这个问题,但没有成功。
如果我省略了第一个功能,这个系统就可以工作。但是,在我的登录系统中,通过两次设置数据库(因为它已经在注册期间设置,然后在登录期间设置),我得到了同样的错误。
如果我不设置我的数据库,我会收到另一个错误:Call to a member function isFrozen() on null
那是我仍然需要 rb.php 的时候。
当我应该设置我的数据库时,你能回答我吗?已经设置好后,我应该如何在需要时再次访问它?我应该创建某种句柄吗?如果是这样,怎么做?
解决方案
推荐阅读
- php - 如何在 node.js 的模板中运行 php 代码
- kubernetes - 当配置了带有 cifs 的 flexvolume 时,Pod 在 Node 上挂载了错误的目录
- kotlin - 在 Kotlin 中切换数字的有效方法?
- mysql - 使用单个查询从多个数据库中获取多条记录
- gradle - 在 gradle 多模块 kotlin DSL 中的 subprojects.forEach 添加的依赖项对子项目不可见
- javascript - 当 div 的偏移量小于固定值时做一些事情
- c++ - 如何使用 std::sort() 对指向值的向量进行排序?
- react-native - 有没有办法在不弹出的情况下删除 react-native 中的默认权限?
- firebase - 如何在 Flutter Firestore 中使用多个 where 子句
- elasticsearch - 我应该在哪里配置 max_result_window 索引设置?