Ошибка SQLSTATE[42000]

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1 (SQL: select * from namename)

контроллер

<?php

namespace App\Http\Controllers;

use App\Models\Message;
use App\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;

class MessagesController extends Controller
{
    public function CreateDbOrUpdate(Request $req, $id)
    {
        $user = new User();
        $messages = new Message();

        $auth = Auth::user()->name;
        $user = $user->find($id)->name;

        $nameSchema = $auth.$user;
        $nameSchemaRef = $user.$auth;

        if(!Schema::hasTable("$nameSchema") || !Schema::hasTable("$nameSchemaRef"))
        {
            Schema::create("$nameSchema", function (Blueprint $table) {
                $table->bigIncrements('id');
                $table->string('nameAuth');
                $table->string('nameUser');
                $table->text('text');
            });

            $messages->name = $nameSchema;

            $messages->save();

            $messagesAll = DB::select('select `text` from `?`', [$nameSchema]);

            return view('up', ['data'=>$user->find($id),
                'messages'=>$messagesAll]);

        } else {

            if(Schema::hasTable("$nameSchema"))
            {
                DB::table("$nameSchema")->insert(
                    array(
                        'nameAuth'=>$auth,
                        'nameUser'=>$user,
                        'text'=>$req->input('text')
                    )
                );

                $messagesAll = DB::select('select `text` from `?`', [$nameSchema]);

                return view('up', ['data'=>$user->find($id),
                    'messages'=>$messagesAll]);
            }
            elseif (Schema::hasTable("$nameSchemaRef"))
            {
                DB::table("$nameSchemaRef")->insert(
                    array(
                        'nameAuth'=>$auth,
                        'nameUser'=>$user,
                        'text'=>$req->input('text')
                    )
                );

                $messagesAll = DB::select('select `text` from `?`', [$nameSchemaRef]);

                return view('up', ['data'=>$user->find($id),
                    'messages'=>$messagesAll]);
            }

        }

    }


}

модель

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;

class Message extends Model
{
    protected $guarded = [];
}


Ответы (1 шт):

Автор решения: Vanya228

Попробуйте сделать так:

Db::table($tableName)->select('text')->get();
→ Ссылка