如何通过 PHP/ODBC 更新 MS SQL 中的 GUID?

发布于 2024-08-21 19:57:10 字数 545 浏览 3 评论 0原文

我的任务是同步两个基于 MS SQL 的产品。我的前任满足于根据姓名和地址的组合来匹配记录,但是两个系统都有 GUID,而且只有一个系统实际使用它。所以我的想法是匹配我现有的记录并将 GUID 从一个数据库复制到另一个数据库。但我似乎无法使用 PHP 和 ODBC 更新 MS SQL 中的 GUID。查询无提示地失败。如果我回显查询并将其复制/粘贴到 SQL Management Studio 或 Oracle SQL Developer 中,则它可以正常工作。我的查询的简化版本如下所示:

$SQL = "UPDATE Contact SET SifGuid = CONVERT(VARCHAR(36), '" . $this->GUID . "') ";
$SQL .= "WHERE contactID = " . $this->POSID . ";

通过 odbc_exec 发送该查询失败。但正如我提到的,同样的查询在 SQL Management Studio 或 Oracle SQL Developer 中运行良好。

有什么想法吗?

提前致谢!

I've been tasked with getting two MS SQL based products to synchronize. My predecessor was content to match records based on a combination of name and address, but both systems have a GUID, and only one is actually using it. So my thought was to match up my existing records and copy the GUID from one database to the other. But I can't seem to update a GUID in MS SQL using PHP and ODBC. The query fails silently. If I echo the query and copy/paste it into SQL Management Studio or Oracle SQL Developer, it works fine. The simplified version of my query looks like this:

$SQL = "UPDATE Contact SET SifGuid = CONVERT(VARCHAR(36), '" . $this->GUID . "') ";
$SQL .= "WHERE contactID = " . $this->POSID . ";

Sending that query through odbc_exec fails. But like I mentioned, the same exact query works fine in SQL Management Studio or Oracle SQL Developer.

Any ideas?

Thanks in advance!

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

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

发布评论

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

评论(1

jJeQQOZ5 2024-08-28 19:57:10

当您从第一个服务器查询数据时,请确保将数据转换为 VARCHAR()

SELECT CONVERT(VARCHAR(36),guidCol) AS guid FROM table 

然后当您插入时,您需要将其转换回 GUID 值,因为它在 PHP 中已经是一个字符串。

UPDATE table SET guidCol = CAST(UNIQUEIDENTIFIER, '" . $this->GUID . "') 

When you query the data out of the first server, be sure you are converting the data to VARCHAR()

SELECT CONVERT(VARCHAR(36),guidCol) AS guid FROM table 

Then when you insert, you need to cast it back to a GUID value since it's already a string in PHP.

UPDATE table SET guidCol = CAST(UNIQUEIDENTIFIER, '" . $this->GUID . "') 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文