こんにちは!
中の人です
laravel11系をレンタルサーバーのさくらにアップしてデータベースの操作したらタイトルのエラーが発生しました
なんだかわかりませんが調べてみたらlaravelでよく遭遇しているエラーみたいなのでメモとして紹介します
どんなエラー?
General error: 1615 Prepared statement needs to be re-prepared
一般エラー: 1615 準備されたステートメントを再準備する必要があります(翻訳)
(゚∀゚ )ナルホドワカラン
こちら見てみるとデータ量が多いバックアップ?をしようとすると発生するらしい(゚∀゚ )?
ちなみにdeleteを実行したところ発生しました
insertとかはこのエラー発生する前は動いていた記憶ありますが、このエラーが発生してからは試してません
なるほどわからん
つまりよくわからないので参考サイトの方々が言うように対策
📁 config/database.php
// ...省略
'mysql' => [
'driver' => 'mysql',
'url' => env('DB_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => env('DB_CHARSET', 'utf8mb4'),
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
PDO::ATTR_EMULATE_PREPARES => true, // 👈 こいつを追加
]) : [],
],
// ...省略
参考
PDO::ATTR_EMULATE_PREPARES => true
これ追加したら直りました
終わりに
( ^ω^ ) よくわからんけどハッピー