Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

veerendra's avatar

Json column problem with Mysql5.7 and laravel5.2

How to retrieve json column data from the json column type in mysql 5.7?

Here is my Eloquent model and migration

class AdminLoginHistory extends Model
{
    protected $table = 'admin_login_history';
    protected $fillable = ['file_path', 'url', 'user_id', 'client_details'];
    protected $casts = ['client_details' => 'json'];
}

Database Migration Table
  public function up()
    {
        Schema::create('admin_login_history', function (Blueprint $table) {
            $table->increments('id');
            $table->string('url');
            $table->json('client_details');
            $table->integer('user_id')->nullable();
            $table->timestamps();
        });
    }

Iam converting  array of client_details  to json and inserting in to data base.

Now,when trying to retrieve the data iam getting error

File Path: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Database/Connection.php
Error Code: HY000, 
 Line Number: 669
Message: SQLSTATE[HY000]: General error: 2036 (SQL: select * from `admin_login_history` where `user_id` = 1 order by `created_at` desc limit 3)

Iam using laravel 5.2,php-5.6.17 and MySQL 5.7.

0 likes
11 replies
d3xt3r's avatar

Please use three back ticks (`) to format your code. How are fetching the row and paste the complete error trace ....

veerendra's avatar

my error trace

File Path: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Database/Connection.php
Error Code:HY000,  Line Number:669
Message:SQLSTATE[HY000]: General error: 2036 (SQL: select * from `admin_login_history` where `user_id` = 1 order by `created_at` desc limit 3)
                                                                                                                            Trace

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Database/Connection.php
Line:629,  Function:runQueryCallback,  Class:Illuminate\Database\Connection,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Database/Connection.php
Line:342,  Function:run,  Class:Illuminate\Database\Connection,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php
Line:1461,  Function:select,  Class:Illuminate\Database\Connection,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php
Line:1447,  Function:runSelect,  Class:Illuminate\Database\Query\Builder,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php
Line:569,  Function:get,  Class:Illuminate\Database\Query\Builder,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php
Line:303,  Function:getModels,  Class:Illuminate\Database\Eloquent\Builder,

File: /home/storage/elivio/InvizoAdmin/app/Http/Controllers/HomeController.php
Line:38,  Function:get,  Class:Illuminate\Database\Eloquent\Builder,

File: - - -
Line:- - -,  Function:profile,  Class:App\Http\Controllers\HomeController,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Controller.php
Line:80,  Function:call_user_func_array,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php
Line:146,  Function:callAction,  Class:Illuminate\Routing\Controller,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php
Line:94,  Function:call,  Class:Illuminate\Routing\ControllerDispatcher,

File: - - -
Line:- - -,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\ControllerDispatcher,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:52,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/app/Http/Middleware/Authenticate.php
Line:44,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: - - -
Line:- - -,  Function:handle,  Class:App\Http\Middleware\Authenticate,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:124,  Function:call_user_func_array,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Pipeline\{closure},  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:32,  Function:call_user_func,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:103,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php
Line:96,  Function:then,  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php
Line:54,  Function:callWithinStack,  Class:Illuminate\Routing\ControllerDispatcher,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Route.php
Line:174,  Function:dispatch,  Class:Illuminate\Routing\ControllerDispatcher,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Route.php
Line:140,  Function:runController,  Class:Illuminate\Routing\Route,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Router.php
Line:724,  Function:run,  Class:Illuminate\Routing\Route,

File: - - -
Line:- - -,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Router,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:52,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php
Line:49,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: - - -
Line:- - -,  Function:handle,  Class:Illuminate\View\Middleware\ShareErrorsFromSession,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:124,  Function:call_user_func_array,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Pipeline\{closure},  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:32,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php
Line:62,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: - - -
Line:- - -,  Function:handle,  Class:Illuminate\Session\Middleware\StartSession,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:124,  Function:call_user_func_array,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Pipeline\{closure},  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:32,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php
Line:37,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: - - -
Line:- - -,  Function:handle,  Class:Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:124,  Function:call_user_func_array,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Pipeline\{closure},  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:32,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php
Line:59,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: - - -
Line:- - -,  Function:handle,  Class:Illuminate\Cookie\Middleware\EncryptCookies,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:124,  Function:call_user_func_array,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Pipeline\{closure},  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:32,  Function:call_user_func,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:103,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Router.php
Line:726,  Function:then,  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Router.php
Line:699,  Function:runRouteWithinStack,  Class:Illuminate\Routing\Router,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Router.php
Line:675,  Function:dispatchToRoute,  Class:Illuminate\Routing\Router,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
Line:246,  Function:dispatch,  Class:Illuminate\Routing\Router,

File: - - -
Line:- - -,  Function:Illuminate\Foundation\Http\{closure},  Class:Illuminate\Foundation\Http\Kernel,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:52,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/barryvdh/laravel-debugbar/src/Middleware/Debugbar.php
Line:49,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: - - -
Line:- - -,  Function:handle,  Class:Barryvdh\Debugbar\Middleware\Debugbar,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:124,  Function:call_user_func_array,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Pipeline\{closure},  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:32,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php
Line:44,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: - - -
Line:- - -,  Function:handle,  Class:Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:124,  Function:call_user_func_array,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Pipeline\{closure},  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
Line:32,  Function:call_user_func,  Class:----,

File: - - -
Line:- - -,  Function:Illuminate\Routing\{closure},  Class:Illuminate\Routing\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
Line:103,  Function:call_user_func,  Class:----,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
Line:132,  Function:then,  Class:Illuminate\Pipeline\Pipeline,

File: /home/storage/elivio/InvizoAdmin/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
Line:99,  Function:sendRequestThroughRouter,  Class:Illuminate\Foundation\Http\Kernel,

File: /home/storage/elivio/InvizoAdmin/public/index.php
Line:54,  Function:handle,  Class:Illuminate\Foundation\Http\Kernel,

File: /home/storage/elivio/InvizoAdmin/server.php
Line:21,  Function:require_once,  Class:----,

d3xt3r's avatar

try running the query directly in workbench/phpmyadmin and see what error you get ...

select * from `admin_login_history` where `user_id` = 1 order by `created_at` desc limit 3
veerendra's avatar

The query is executing successfully in phpmyadmin.But when using in laravel 5.2 getting error.

$values=DB::table('admin_login_history')->where('user_id',1)->orderBy('created_at','desc')->take(3)->get();

The above query gets error when retrieving the values from table.The table contains one json column which is newly used in mysql5.7 and laravel 5.2.

But when querying the results without selecting the json column, the query retrieving the results.the problem is with json column.

example:
$values=DB::table('admin_login_history')->select('id')->where('user_id',1)->orderBy('created_at','desc')->take(3)->get();

This executes successfully and retrieving results.

The main problem is with json column type.iam using laravel 5.2 and mysql5.7

veerendra's avatar

I managed in this way

AdminLoginHistory::select(\DB::raw("CAST(client_details as CHAR) as client"), 'created_at', 'url')->orderBy('id', 'desc')->paginate(5);

clara's avatar

Same problem over here.

Using: Laravel 5.2 | PHP 7.0.10 | MySql 5.7.14 | CentOS 7

I resolved it by following these steps:

sudo yum remove php70w-mysql
sudo yum install php70w-mysqlnd
sudo service httpd restart

Looks like the issue is related to this bug: https://bugs.php.net/bug.php?id=70384

I think it must have been fixed in the library mysqlnd but not the libmysqlclient

See here for more information about the difference: http://php.net/manual/en/mysqlinfo.library.choosing.php

4 likes
gibex's avatar

My case: Ubuntu | Laravel 5.2 | php 5.6.23|Mysql 5.7

Solution (native driver instead of default php5-mysql)

apt-get install php5-mysqlnd

Hope this helps

1 like
clara's avatar

LOL

I've just spent the last three hours trying to figure out this problem again after upgrading to php72w.

Thank you past me, your solution works perfectly :')

1 like
felixpenrose's avatar

@jeramy you're a life saver - don't know how long I'd have been searching to find this obscure fix! Thanks

Please or to participate in this conversation.