【问题标题】:SQLSTATE[01000]: Warning: 1265 Data truncated for columnSQLSTATE [01000]:警告:1265 列的数据被截断
【发布时间】:2018-06-08 15:12:02
【问题描述】:

SQLSTATE[01000]:警告:第 1 行的“pay_totals”列的 1265 数据被截断

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

帮助

【问题讨论】:

  • 此错误的根本原因在于 MySQL,由于我们看不到有关您的数据库表的任何信息,因此我认为这个问题无法回答。最有可能的是,您正在尝试存储一些太宽而无法放入目标列的数据,而 MySQL 会就此发出警告。

标签: mysql sql laravel request


【解决方案1】:

问题是列pay_totals 无法存储您从输入中获得的任何内容,因为它太大了。

可能的解决方案

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

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

【讨论】:

    【解决方案2】:

    由于数据类型不匹配,可能会出现同样的错误。例如,如果您将字符串分配给浮点数,您将收到此错误。所以一定要检查数据的类型是否正确。我在 symfony 上遇到了这个错误。

    【讨论】:

      【解决方案3】:

      有时会发生此错误,因为将数据插入到数据透视表中的 ('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);
      

      【讨论】:

        猜你喜欢
        • 2017-12-14
        • 2019-11-17
        • 2021-11-01
        • 2019-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多