我使用SQL0206N "SYS" is not valid in the context where it is used. LINE NUMBER=15.
SQLSTATE=42703
作为简单的随机字符串生成器。它非常简单,运行良好,满足了我的需求(用于id的时间随机等)
在chrome中,safari,firefox和ie (Math.random()*1e32).toString(36)
生成如下数字:Math.random()*1e32
:-)
8.357963780872523e+31
- > (8.357963780872523e+31).toString(36)
这正是我想要的。221fr2y11ebk4cog84wok
。如何以跨浏览器的方式从6.936gwtrpf69(e+20)
获取相同的字符串221fr2y11ebk4cog84wok
?
BTW:我从这个帖子中得到了这个随机字符串的想法:Random alpha-numeric string in JavaScript?
答案 0 :(得分:3)
请记住<?php
session_start();
include 'dbcon.php';
$page = 'index.php';
$toevoegen = $_GET['toevoegen'];
if(isset($toevoegen)){
$query ="SELECT partnr, hoeveelheid FROM producten WHERE partnr='$toevoegen'";
$result = mysqli_query($connectie, $query);
while($result_row = mysqli_fetch_assoc($result)){
if($result_row['hoeveelheid']!=$_SESSION['winkelwagen_'.$toevoegen]){
$_SESSION['winkelwagen_'.$toevoegen]+='1';
}
}
}
?>
返回0到1之间的值(不包括),并且JavaScript中的数字根据IEEE-754有53位尾数,获得随机整数的安全方法是
Math.random()
因此可以从
获取随机字母数字字符串Math.random() * Math.pow(2, 54)
请注意,无法保证字符数,可以是1到11之间的任何字符,具体取决于随机值的数量级。
答案 1 :(得分:2)
尽管我可以看到,你不需要将随机数乘以如此大的数字。试试这个:
Math.random().toString(36).slice(2)
这样就够了吗?它是一个稍短的字符串,但它在所有浏览器中都是一致的(我测试过)。