web-dev-qa-db-fra.com

SQLSTATE [01000]: avertissement: 1265 données tronquées pour la colonne

SQLSTATE [01000]: avertissement: 1265 données tronquées pour la colonne 'pay_totals' à la ligne 1

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');
    }

lame:

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

Helppp

4
Honda hoda

Le problème est que la colonne pay_totals Ne peut pas stocker tout ce que vous obtenez de l'entrée car elle est trop grande.

Solutions possibles

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

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

La même erreur peut se produire en raison incompatibilité du type de données. Par exemple, si vous affectez une chaîne à flotter, vous obtiendrez cette erreur. assurez-vous donc de vérifier si les données sont de type correct. J'ai eu cette erreur sur symfony.

7
Pushpa Kumara

Parfois, cette erreur s'est produite en raison de l'insertion de données dans des colonnes supplémentaires telles que ('created_at','updated_At') dans le tableau croisé dynamique. La solution ci-dessous fonctionne pour moi.

Code d'erreur

$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);

Correction de code

$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