我有两个不同的SQL表,它们都有一个名为ID的uniqueidentifier字段。
在我的网站上,我调用一个查询来将表A中的uniqueidentifier字段存储到变量中。
$query = "SELECT ID FROM [dbo].[TableA] WHERE Name='{$name}'";
$result = sqlsrv_query($conn, $query);
while ($row = sqlsrv_fetch_array($result)){
$ID= $row['ID'];
}
然后,在将此唯一标识符存储到$ ID之后,将其插入到TableB中。
$query = "INSERT INTO [dbo].TableB(ID) values ('{$ID}')";
$result = sqlsrv_query($conn, $query);
这将不起作用,在sqlsrv_errors()上显示以下错误
语法错误,权限冲突或其他非特定错误。
当我们将 $ ID 更改为 newid()时,查询正常工作,但是我希望插入自己的值而不是生成新值。
$ ID回显显示以下内容: D52A7C05-0399-4C82-8662-0F5731B4062C ,该值与当前存储在TableA id中的值完全相同。
也许当我将$ uniqueidentifier存储在$ ID上时,它会转换为字符串,因此不是一个正确的值,不能作为uniqueidentifier插入吗?
已修复:发现我在查询中遇到了一个非常小的语法错误。使用var_dump($query);
来解决它。谢谢@ADyson。