【问题标题】:Laravel & freetds can't insert data into mssqlLaravel & freetds 无法将数据插入 mssql
【发布时间】:2015-07-13 20:37:15
【问题描述】:

我只需要将数据(字符集 UTF-8)插入到 mssql 表中。我可以选择数据,但不能插入。

为了通过 laravel 连接到 mssql 服务器,我使用“Freetds”。

Laravel 4.2

插入代码:

try {
         $data = DB::table('angularTableUserData')->insert([
            'userId'            => Auth::user()->PK_psPersonalData,
            'fullname2'         => $data['fullname2'],
            'praddress'         => $data['praddress'],
            'occupation'        => $data['occupation'],
            'gender'            => $data['gender'],
            'prtelno'           => $data['prtelno'],
            'mobilephone'       => $data['mobilephone'],
            'emptelefax'        => $data['emptelefax'],
            'email'             => $data['email'],
            'promo'             => $data['promo'],
            'nkfullname'        => $data['nkfullname'],
            'FK_mscRelation_NK' => $data['FK_mscRelation_NK'],
            'nktelefax'         => $data['nktelefax'],
            'civilstatus'       => $data['civilstatus'],
            'otherallergies'    => $data['otherallergies'],
            'pastmedallergy'    => $data['pastmedallergy']
        ]);
    }
    catch(Exception $ex)
    {
        return $ex;
    }
    return $data;

错误文本: http://pastebin.com/eUabMPCP

表结构

[id] [int] IDENTITY(1,1) NOT NULL,
[userId] [int] NULL,
[fullname2] [varchar](max) NULL,
[praddress] [varchar](max) NULL,
[occupation] [varchar](max) NULL,
[gender] [varchar](max) NULL,
[prtelno] [varchar](max) NULL,
[mobilephone] [varchar](max) NULL,
[emptelefax] [varchar](max) NULL,
[email] [varchar](max) NULL,
[promo] [varchar](max) NULL,
[nkfullname] [varchar](max) NULL,
[nktelefax] [varchar](max) NULL,
[civilstatus] [varchar](max) NULL,
[pastmedallergy] [varchar](max) NULL,
[otherallergies] [text] NULL,

【问题讨论】:

  • 嗨,您能否将您的错误消息作为您问题的一部分发布。
  • 我觉得它太大了,这就是我通过 pastebin 发布它的原因
  • 为什么将所有内容都定义为 varchar(max)?您是否希望姓名或电话号码超过 8,000 个字符?为什么一栏的文字?这已被弃用十年并被 varchar(max) 取代。

标签: php sql-server laravel laravel-4 freetds


【解决方案1】:

好的,我终于解决了。

忘记了默认的 laravel 时间戳,错误没有显示出来。

刚刚添加:

public $timestamps = false;

在代码中。

【讨论】:

    猜你喜欢
    • 2019-11-09
    • 2015-02-22
    • 1970-01-01
    • 2018-06-29
    • 2023-03-03
    • 1970-01-01
    • 2017-05-31
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多