我正试图从第二个数据库中获取一行,使用laravel中的自定义Artisan命令。现在我想打印查询的结果,但是我一直得到一个错误。我很感激你的帮助。
我设置连接到
两个数据库
它们连接起来,运行起来没有问题。我使用的表名为person,包含多个列,如
姓名、姓氏、身份证
(自动递增和主键)和ssn。我还创建了一个自定义Artisan命令,在使用
php artisan import-users:DB 12345678
以及询问
DB::connection('mysql2')->select('SELECT * FROM person WHERE ssn=?', [$ssn])
查询的结果被放在变量$user中,现在我只想打印出来,但是我总是得到错误。这是我试过的
$name = $user['name'];
它给了
错误异常:未定义索引:名称
$this->line($user[0]);
它给了
错误异常:类stdclass的对象无法转换为字符串
$this->line($user->name);
它给了
错误异常:试图获取非对象的属性“name”
我也试过很多东西,但都没用。再次感谢
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use DB;
class ImportUsers extends Command{
protected $signature = 'import-users:DB {ssn}';
protected $description = 'import users from old database';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$ssn = $this->argument('ssn');
$user = DB::connection('mysql2')->select('SELECT * FROM person WHERE
ssn=?', [$ssn]);
$this->line($user->name);
$this->info($ssn.' Done');
}
}