mysql 更新到laravel 10后,无法使用DB::select(DB::raw())执行原始查询

qij5mzcb  于 2023-03-28  发布在  Mysql
关注(0)|答案(1)|浏览(216)

更新到laravel 10后,我不能像这样执行原始查询:

$statement = 'SELECT';
    foreach ($tables = collect(availableTables()) as $name => $table_name) {
        if ($tables->last() == $table_name) {
            $statement .= "( SELECT COUNT(*) FROM $table_name) as {$table_name}";
        }
        else {
            $statement .= "( SELECT COUNT(*) FROM $table_name) as {$table_name}, ";
        }
    }
    $query  = DB::select(DB::raw($statement));

这将返回以下错误:

PDO::prepare (): Argument #1 ($query) must be of type string, Illuminate\Database|Query\ Expression given

我应该怎么做来解决这个问题

ukdjmx9f

ukdjmx9f1#

您不需要在DB::select()中使用DB::raw()

DB::select("select @@sql_mode");

因此,您可以使用以下代码代替:

$query = DB::select($statement);

相关问题