codeigniter 如何在Laravel 5中执行简单查询?DB::getQueryLog给出数组

wdebmtf2  于 2022-12-07  发布在  其他
关注(0)|答案(3)|浏览(134)

我是Laravel的新手,我想在Laravel 5中执行简单查询。我正在使用以下函数插入数据

public function store12($inputs)
    {
        $this->name = $inputs['name'];
        $this->email = $inputs['email'];
        $this->text = $inputs['message'];       
        $this->save();
         echo "<pre>"; print_r(dd(DB::getQueryLog()));
        //echo DB::table('contacts')->toSql();
        die;

    }

并使用以下语句:-**dd(DB::getQueryLog())**获取行查询,这将提供以下原始查询:-

array:1
  0 => array:3
    "query" => "insert into `contacts` (`name`, `email`, `text`, `updated_at`, `created_at`) values (?, ?, ?, ?, ?)"
    "bindings" => array:5
      0 => "shahjad"
      1 => "shahjad.ahmadtimt@gmail.com"
      2 => "xsxdxsda"
      3 => "2016-06-13 12:17:43"
      4 => "2016-06-13 12:17:43"
    ]
    "time" => 33.0
  ]
]

其实我想这样查询:-

insert into `contacts` (`name`, `email`, `text`, `updated_at`, `created_at`) values ('shahjad', 'shahjad.ahmadtimt@gmail.com', 'xsxdxsda', '2016-06-13 12:17:43', '2016-06-13 12:17:43')"

这样我就可以轻松地直接在phpmyadmin中执行这个查询,否则我必须在查询中提到这个值,这将非常耗时。
在Codeigniter中,当我们使用last_query方法时,它会显示一个没有数组的简单查询。我想和Codeigniter一样。是否可能

kuarbcqp

kuarbcqp1#

使用-〉tosql()
范例

dd(DB::select('users')->where('smthing',1)->get()->tosql());

编辑

$test = DB::table('users')->insert(
    ['name' => $inputs['name'], 'email' => $inputs['email'], 'text' => $inputs['message']]
  )->tosql();

或者你可以这样做

\DB::listen(function($sql) {
    var_dump($sql);
});


你可以使用这个软件包,它会向你显示每个sql查询已经被laravel-debugbar

nkhmeac6

nkhmeac62#

你试过法吗

$results = DB::select( DB::raw("
                               insert into `contacts` 
                               (`name`, `email`, `text`, `updated_at`, `created_at`) 
                              values
                              ('shahjad', 'shahjad.ahmadtimt@gmail.com', 'xsxdxsda', '2016-06-13 12:17:43', '2016-06-13 12:17:43')
                             " ) );
qojgxg4l

qojgxg4l3#

这段代码对我有效,请尝试

DB::enableQueryLog();

然后

run your query

然后

foreach (DB::getQueryLog() as $q) {
  $queryStr = \Str::replaceArray('?', $q['bindings'], $q['query']);
  echo $queryStr . ";\n";
}

相关问题