Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 此函数是否会使strSerial始终唯一?_Php_Sql Server - Fatal编程技术网

Php 此函数是否会使strSerial始终唯一?

Php 此函数是否会使strSerial始终唯一?,php,sql-server,Php,Sql Server,这个函数会使一个项目的strSerial始终是唯一的还是只获取日期时间,如果有人同时执行脚本,他们将获取相同的strSerial $x = explode(' ', microtime()); $nSerialLo = ($x[0] . date('s') . date('i') + date('H')) . rand(0, 1024); $nSerialHi = (date('d') . date('m') . (date('Y') % 100)) . rand(0, 1024);

这个函数会使一个项目的
strSerial
始终是唯一的还是只获取日期时间,如果有人同时执行脚本,他们将获取相同的
strSerial

  $x = explode(' ', microtime());
  $nSerialLo = ($x[0] . date('s') . date('i') + date('H')) . rand(0, 1024);
  $nSerialHi = (date('d') . date('m') . (date('Y') % 100)) . rand(0, 1024);
  $nSerial = $pEquipped->ToUInt64($nSerialHi, $nSerialLo);
  $pItem->SetNum($nItemID)->SetSerial($nSerial)->SetDurability($nDurability)->SetCount(1);

以下是您的变量:

  $nSerialLo = ($x[0] . date('s') . date('i') + date('H')) . rand(0, 1024);
  $nSerialHi = (date('d') . date('m') . (date('Y') % 100)) . rand(0, 1024);
echo  $nSerialLo."<br>";
echo $nSerialHi."<br>";
我添加了微时间:

$date_micro= date("YmdHis").substr((string)microtime(), 1, 6);
$removedote=explode('.',$date_micro); 
$new_date= $removedote[0].$removedote[1];
echo $new_date."<br>";
有了微时间,我想这将是一个独一无二的数字

编辑:

现在呢

$x = explode(' ', microtime());
  $y = explode(' ', microtime());
  $new_val=$y[0] * $x[0];
  $nSerialLo = ($new_val . date('s') . date('i') + date('H')) * rand(0, 1024);
  $z = explode('.', $nSerialLo);
  $nSerialHi = ($z[1] .$x[0] . (idate('U') % $x[1])) . rand(0, 1024);
  echo  $nSerialLo."<br>";
  echo $nSerialHi."<br>";
$x=explode(“”,microtime());
$y=爆炸('',微时间());
$new_val=$y[0]*$x[0];
$nSerialLo=($new_val.date('s')。date('i')+date('H'))*兰特(014);
$z=爆炸('.',$N爆炸);
$nSerialHi=($z[1].$x[0]。$idate('U')%$x[1])。兰特(0,1024);
echo$nSerialLo.“
”; echo$nSerialHi.“
”;
您可以这样添加微秒:

$nSerialLo = ($x[0] . date('u') . date('s') . date('i') + date('H')) . rand(0, 1024);

但是,这并不能保证你不会与你的连续剧发生冲突,因此我建议你将你的连续剧存储在数据库中,并检查它是否是以前创建的。

通过
strSerial
你的意思是
$nSerial
?是的,strSerial是为了使游戏中的项目唯一,因此重复扫描程序不会删除它。(所有物品都应该有唯一的序列号,否则它将被视为复制物品(非法))目前它是唯一的,但有时它不是。。。为什么会这样?有时,我们最终会有两个不同的项目具有相同的结构序列,而它们本应具有唯一性。我相信它们是在同一个日期时间获得的,因为我看到脚本得到的是日期时间?所以,使用微秒,检查“date”(“Y/m/dh:I:s”)。substr((string)microtime(),1,6);“为什么这个问题用sql server标记?这似乎与此无关?谢谢,但我想我现在有了
$x=explode(“”,microtime())???那么,我有微时间?那么,我现在应该做什么?
$x = explode(' ', microtime());
  $y = explode(' ', microtime());
  $new_val=$y[0] * $x[0];
  $nSerialLo = ($new_val . date('s') . date('i') + date('H')) * rand(0, 1024);
  $z = explode('.', $nSerialLo);
  $nSerialHi = ($z[1] .$x[0] . (idate('U') % $x[1])) . rand(0, 1024);
  echo  $nSerialLo."<br>";
  echo $nSerialHi."<br>";
$nSerialLo = ($x[0] . date('u') . date('s') . date('i') + date('H')) . rand(0, 1024);