-1

我必须在 php 中使用 uniqid() 生成自动会话 ID,但我必须将其存储在 MSSQL 数据库中。但我无法将其转换为唯一标识符的类型。

<?php

//set the random id length 
$random_id_length = 10; 

//generate a random id encrypt it and store it in $rnd_id 
$rnd_id = crypt(uniqid(rand(),1)); 

//to remove any slashes that might have come 
$rnd_id = strip_tags(stripslashes($rnd_id)); 

//Removing any . or / and reversing the string 
$rnd_id = str_replace(".","",$rnd_id); 
$rnd_id = strrev(str_replace("/","",$rnd_id)); 

//finally I take the first 10 characters from the $rnd_id 
$rnd_id = substr($rnd_id,0,$random_id_length); 

echo "Random Id: $rnd_id" ;
echo "<br>";

?>

这是现在的代码,我希望将此 $rnd_id 转换为 uniqueidentifier 类型并将其存储到 mssql 数据库中

4

1 回答 1

0

不要这样做。最好让 MSSQL 分配一个唯一的 id 并在保存表行后获取这个。通过这种方式,您可以确定您的 id 确实是独一无二的(在您的数据库范围内)。

$qry = mssql_query("INSERT INTO tbl(...) VALUES(...) SELECT LAST_INSERT_ID=@@IDENTITY");
$res = mssql_fetch_assoc($qry);

$res['LAST_INSERT_ID']将保存最后一个插入 ID。

于 2012-10-08T11:00:44.463 回答