Ошибка 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();