web-dev-qa-db-ja.com

SQLSTATE [01000]:警告:1265列のデータが切り捨てられました

SQLSTATE [01000]:警告:1265行1の列 'pay_totals'のデータが切り捨てられました

public function order(Request $req){
        $order = new Order;
        $order->pay_number = $req->checkout_number;
        $order->pay_totals = $req->checkout_total;
        $order->save();
        return redirect(route('pay'))->with('message','Sending infomation successfully');
    }

刃:

<input type="text" name="checkout_total" value="{{Cart::subTotal('0') }} ">

Helppp

4
Honda hoda

問題は、列_pay_totals_が大きすぎるため、入力から取得したものを何も格納できないことです。

可能な解決策

SQL:ALTER TABLE [orders] ALTER COLUMN [pay_totals] VARCHAR(MAX)

MYSQL:ALTER TABLE [orders] MODIFY COLUMN [pay_totals] VARCHAR(60000)

データ型の不一致が原因で同じエラーが発生する可能性があります。例として、フロートに文字列を割り当てると、このエラーが発生します。したがって、データのタイプが正しいかどうかを確認してください。 symfonyでこのエラーが発生しました。

7
Pushpa Kumara

ピボットテーブルの('created_at','updated_At')などの追加の列にデータを挿入したことが原因で、このエラーが発生する場合がありました。以下の解決策は私にとってはうまくいきます。

エラーコード

$users=User::create($input['data']);
foreach ($input['products'] as $product) {
    if (array_key_exists('special_price', $product)) {
        $userProducts[$product['id']] = ['special_price' => $product['special_price']];
    } else {
        $userProducts[$product['id']] = ['special_price' => ''];
    }
    $userProducts['created_at'] = Carbon::now()->toDateTimeString();
    $userProducts['updated_at'] = Carbon::now()->toDateTimeString();
}

//individual product with special price of each product
/*
Output before code correction

array (1 =>
array(
    'special_price' => '',
),
'created_at' => '2019-04-07 14:28:27',
'updated_at' => '2019-04-07 14:28:27',))
*/
$users->products()->sync($userProducts);

コード修正

$users=User::create($input['data']);
foreach ($input['products'] as $product) {
    if (array_key_exists('special_price', $product)) {
        $userProducts[$product['id']] = ['special_price' => $product['special_price']];
    } else {
        $userProducts[$product['id']] = ['special_price' => ''];
    }
    // below lines are after code correction
    $userProducts[$product['id']]['created_at'] = Carbon::now()->toDateTimeString();
    $userProducts[$product['id']]['updated_at'] = Carbon::now()->toDateTimeString();
}

//individual product with special price of each product
/*
Output after code correction

array (1 =>
array(
    'special_price' => '',
    'created_at' => '2019-04-07 14:28:27',
    'updated_at' => '2019-04-07 14:28:27',
),)
*/
$users->products()->sync($userProducts);
1
jay thanki