PHP MS SQL ID格式问题

发布于 2024-10-18 05:39:23 字数 159 浏览 5 评论 0原文

我正在将记录从为 ASP.net 应用程序构建/由 ASP.net 应用程序构建的遗留 MSSQL 数据库中绘制到 PHP 中。

ASP 中的 id 显示为一长串数字,但当由 PHP 检索时,其形式如下:

3;Í}±¯I©ûzƒgŸó

I'm drawing records into PHP from a legacy MSSQL database built for/by an ASP.net application.

The id's in ASP appear as long strings of numbers but when retrieved by PHP are in a form like so:

3;Í}±¯I©ûzƒgŸó

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

神魇的王 2024-10-25 05:39:23

在 PHP 7 及更高版本中,您现在必须“告诉”PDO 在返回 GUID 时使用 GUID 的字符串表示形式,而不是默认的二进制表示形式。

请参阅:https://github.com/php/php-src/pull/2001< /a>

解决方案:

     /* $db represent the PDO connection */
     $db->setAttribute(PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, true);

In PHP 7 and up you now have to "tell" PDO to use the string representation of the GUID when returning it as opposed to the default binary representation.

See: https://github.com/php/php-src/pull/2001

Solution:

     /* $db represent the PDO connection */
     $db->setAttribute(PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, true);
心在旅行 2024-10-25 05:39:23

我打赌这些 ID 实际上是 GUID——如果是这样,您将需要使用 mssql-guid-string (或者如果您使用的是 PHP 5.3 或更高版本,您将需要使用 Microsoft 的 SqlSrv 扩展名,它应该自动转换 GUID 字段。)

I'm going to wager that the IDs are actually GUIDs -- if so you will want to convert your GUIDs to strings using mssql-guid-string (or if you are using PHP 5.3 or later you will want to use Microsoft's SqlSrv extension, which should convert GUID fields automatically.)

夏末的微笑 2024-10-25 05:39:23

使用此功能。它返回集中的 mssql id。
示例:G4G3G2G1-G6G5-G8G7-G9G10-G11G12G13G14G15G16

 function convertBinToMSSQLGuid($binguid)
 {
    $unpacked = unpack('Va/v2b/n2c/Nd', $binguid);
    return sprintf('%08X-%04X-%04X-%04X-%04X%08X', $unpacked['a'], $unpacked['b1'], $unpacked['b2'], $unpacked['c1'], $unpacked['c2'], $unpacked['d']);
 }

Use this function. It retuns cenverted mssql id.
Example: G4G3G2G1-G6G5-G8G7-G9G10-G11G12G13G14G15G16

 function convertBinToMSSQLGuid($binguid)
 {
    $unpacked = unpack('Va/v2b/n2c/Nd', $binguid);
    return sprintf('%08X-%04X-%04X-%04X-%04X%08X', $unpacked['a'], $unpacked['b1'], $unpacked['b2'], $unpacked['c1'], $unpacked['c2'], $unpacked['d']);
 }
空城之時有危險 2024-10-25 05:39:23

在连接中设置以下属性
PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER
作为真正的

来源 https://github.com/php/php-src/pull/2001

set in connection following attribute
PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER
as true

source https://github.com/php/php-src/pull/2001

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文