Search code examples
phpsql-serverlaravellaravel-4freetds

Laravel & freetds can't insert data into mssql


I simply need to insert data(charset UTF-8), into mssql table. I can select data, but can't insert.

For connect to mssql server through laravel i use "Freetds".

Laravel 4.2

Insert code:

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;

Error text: http://pastebin.com/eUabMPCP

Table structure

[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,

Solution

  • Ok, i've finally solved it.

    Forgot about default laravel timestamps and the error didn't show it.

    Just added:

    public $timestamps = false;
    

    in code.