【问题标题】:Fail generate UUID datatype (uniqueidentifier) from sql server using laravel使用 laravel 从 sql server 生成 UUID 数据类型(唯一标识符)失败
【发布时间】:2020-04-09 15:53:57
【问题描述】:

我的 php 配置有问题.. 在我的本地计算机中,所有 uuid 都正常运行.. 但是当我在我的服务器上运行时,uuid 生成失败,就像

b"uT‹ñÑ?zA´ñ'~$°\x02'

在我的本地我使用的是 apache,而在我的服务器中我使用的是 nginx.. 我的本地和服务器中所有相同的 php 版本和 sqlserver 版本

我在该服务器上的配置 php.ini 有什么问题?

请帮帮我..

【问题讨论】:

  • 您能否检查确切问题发生在哪里?在你的应用程序中,在数据库服务器上写吗?

标签: php sql-server laravel nginx sqlsrv


【解决方案1】:

可能在 php (dblib) 的 sqlserver 驱动程序的 uuid 字段中进行字符串化 您可以在 PDO 调用中添加选项,例如

        PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER => true,

【讨论】:

    【解决方案2】:

    你的 php.ini 没有问题,好吧 问题是当你生成你的 uuid 时,当你把它放在 linux 中时,Laravel 不理解它。 您只需检查您的模型(确保将类型列设置为 String ),然后检查查询, 这是一个例子:

        $user_list = DB::table('users')
                    ->select(DB::raw('CAST(user.id AS NVARCHAR(36)) AS id'))
                    ->orderBy('created_at', 'desc')
                    ->first();
    

    使用 cast ,将帮助您正确获取 uuid。

    【讨论】:

    • 您能进一步解释一下吗?你怎么猜到这里涉及到 Linux?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2011-03-26
    相关资源
    最近更新 更多