我已经在stackoverflow上阅读了很多答案,但是我找不到与我的问题有关的任何内容。
这是我的表:
`id` char(11) NOT NULL,
`element` varchar(32) NOT NULL,
我需要使用自动增量的11个字符的唯一字符串ID(如果可能,区分大小写)和数字,就像youtube一样:
youtube.com/watch?v=的 j5syKhDd64s
youtube.com/watch?v=的 YVkUvTmDf3Y
youtube.com/watch?v=的 8BcDeoKLsaY
...
我怎么能用mysql / php做到这一点?
答案 0 :(得分:2)
你可能想要像hashids这样的东西。他们的页面也链接到替代解决方案。
如果这不合适,请更详细地描述您的问题。
答案 1 :(得分:0)
一种方法是使用此功能
function generateRandomString($length = 11) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
然后将$ randomString结果传递给您的查询以添加到DB中。
编辑:
如果OP正在寻找他提到的字符串(aaaaaaaaaaa, aaaaaaaaaab, aaaaaaaaaac, aaaaaaaaaad)
,我建议您查看Theory of Computation。
答案 2 :(得分:0)
这是我自动增加了我唯一的id字符串字段的代码。
case "Add":
$itemno = $_POST['itemno'];
$qty = $_POST['qty'];
$unitprc = $_POST['unitprc'];
$amt = $_POST['amt'];
$coopmemid = $_SESSION['kiosk']['is_coopmemID_kiosk'];
$totamt = 0;
$totitm = count($itemno);
$a_empgroid = array();
for($x=0; $x<$totitm; $x++) {
$Addquery = "INSERT INTO tb_empgrocery (coopmemID , date_ordered, item_no, qty_ordered, unit_price, amount)
VALUES ('$coopmemid',(NOW()),'$itemno[$x]','$qty[$x]','$unitprc[$x]','$amt[$x]')";
$atecCoop->query($Addquery);
$totamt+=$amt[$x];
$inserted_id = $atecCoop->insert_id;
array_push($a_empgroid,$inserted_id);
}
$Savequery = "INSERT INTO tb_empgroc_master (order_status, date_ordered, total_items, total_amount) VALUES ('Pending', (NOW()), '$totitm', '$totamt')";
$atecCoop->query($Savequery);
$empgrocmstid = $atecCoop->insert_id;
$orderno = date('y-m-').str_pad($empgrocmstid, 10, "0", STR_PAD_LEFT);
$sql = "UPDATE tb_empgroc_master SET order_no='$orderno' WHERE empgrocmstID='$empgrocmstid'";
$atecCoop->query($sql);
foreach($a_empgroid as $empgrocid) {
$sql = "UPDATE tb_empgrocery SET order_no='$orderno' WHERE empgrocID='$empgrocid'";
$atecCoop->query($sql);
}
break;
正如您所见,字段oder_no
是唯一ID(varchar 25)
希望这会有所帮助:)