Ошибка с redbeanphp
if( empty($errors) )
{
$user = R::dispense('users');
$user->login = $data['login'];
$user->email = $data['email'];
$user->password = $data['password'];
R::store($user);
} else
{
echo '<div style="color: red;">'.array_shift($errors).'</div><hr>';
}
Подключение<?php
require "libs/rb.php";
R::setup( 'mysql:host=localhost/;dbname=regbase',
'mysql', 'mysql' ); //for both mysql or mariaDB
?>
Выдает ошибку:
Fatal error: Uncaught TypeError: Argument 1 passed to RedBeanPHP\Util\DispenseHelper::dispense() must be an instance of RedBeanPHP\OODB, null given, called in C:\Users\Chekhov\Downloads\OSPanel\domains\base.ru\libs\rb.php on line 10723 and defined in C:\Users\Chekhov\Downloads\OSPanel\domains\base.ru\libs\rb.php:12650 Stack trace: #0 C:\Users\Chekhov\Downloads\OSPanel\domains\base.ru\libs\rb.php(10723): RedBeanPHP\Util\DispenseHelper::dispense(NULL, 'users', 1, false) #1 C:\Users\Chekhov\Downloads\OSPanel\domains\base.ru\signup.php(29): RedBeanPHP\Facade::dispense('users') #2 {main} thrown in C:\Users\Chekhov\Downloads\OSPanel\domains\base.ru\libs\rb.php on line 12650
Ранее ошибок не было, после добавления кода выше, стала появляться. Убрал в бд все подчеркивания, пробовал менять регистры, но не получилось.
Ответы (1 шт):
Скорее всего Вы не корректно указали путь к Вашей таблице.
Чтобы решить Вашу задачу необходимо:
1. Проверить подключение к БД.
2. Проверить название таблицы (необходимо соблюдать регистр букв)
3. Проверить передаваемые данные (Хотя RedBean способен менять тип данных в соответствии с передаваемыми, но на всякий случай, для уверенности, что они не пустые)
4. Убедиться, что нет других обязательных столбцов.
5. Проверить путь к подключаемому файлу.
Была подобная проблема у одного из пользователей данного сообщества Тут
Для уверенности вот рабочий пример (Файл rb.php находится в той же папке, что и сам файл):
<?php
require_once "rb.php";
R::setup( 'mysql:host=localhost;dbname=dbname', 'login', 'password' );
if(!R::testConnection()) die('No DB connection!');
$errors = null;
$data = ['login' => '123', 'email' => '111', 'password' => '222'];
if( empty($errors) ) {
$user = R::dispense('users');
$user->login = $data['login'];
$user->email = $data['email'];
$user->password = $data['password'];
R::store($user);
print_r($user);
} else {
echo '<div style="color: red;">'.array_shift($errors).'</div><hr>';
}
?>
