仅当用户同时存在于两个数据库中时,才如何使用另一个数据库登录?

时间:2019-06-11 04:14:11

标签: php laravel-5.8

“我已在config / database.php中创建了mysql2,其中包含第二数据库的详细信息,并且还在.env文件中进行了更改。如何编写查询,以便必须使用database2的ID和密码登录?”

“我正在运行PHP 7.3和XAMPP的localhost上工作。我试图从两个数据库中获取数据,但是尝试登录时却遇到了同样的问题。”

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=travelreport
DB_USERNAME=root
DB_PASSWORD=

DB_CONNECTION=mysql_external
DB_EXT_HOST=127.0.0.1
DB_PORT=3306
DB_EXT_DATABASE=tools_bta
DB_EXT_USERNAME=root
DB_EXT_PASSWORD=
  

config / database.php

'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'travelreport'),
        'username'  => env('DB_USERNAME', 'root'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

    'mysql_external' => [
        'driver'    => 'mysql',
        'host'      => env('DB_EXT_HOST', 'localhost'),
        'database'  => env('DB_EXT_DATABASE', 'tools_bta'),
        'username'  => env('DB_EXT_USERNAME', 'root'),
        'password'  => env('DB_EXT_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],
  

MainController.php文件

    <?php

namespace App\Http\Controllers;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Requests\CreateUserRequest;
use UxWeb\SweetAlert;
use App\LegonUser;
use Request;
use Alert;
use DB;
class LegonUserController extends Controller
{
    //
    public function index()
    {
        # code...
        return view('login');
    }

    public function LegonSignin() {
    $input = Request::all();
    //$database = LegonUser::on('mysql2')->select('*')->where($user_data ,'=',         $user_data)->get();
    $legonModel = new LegonUser;
    $legonDB = \DB::connection('mysql_external');
    $logindata = $legonDB->table('emp_username_db')->get();

    $user_data = array(
          'id' => $input['id'],
          'pass' => $input['pass']
        );
    if (Auth::attempt($user_data)) {
        print_r($user_data);
        // return redirect('/');
       }else {
        return redirect()->back()->withErrors($user_data);
      }
}
  

如果条件为,将Auth :: attempt放入时出现的错误是:

(2/2) QueryException
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'tools_bta.users' doesn't exist (SQL: select * from `users` where `id` = EMP01 and `pass` = 123456 limit 1)

0 个答案:

没有答案