PHP 中的 uniqid() 将最后一个字符串更改为其他内容
uniqid() in PHP altered the last string to something else
我遇到了 uniqid
的问题。我正在尝试将 uniqid
保存在数据库中并用它创建一个 QR 码。正如我注意到的,最后一个字符串不一样。
示例:
这是已插入数据库的代码622b47895d332
,而存储的二维码文件名为622b47895d333.png
。
怎么可能数据库中的数据与二维码的文件名不匹配?
这是我目前用来生成二维码的代码..
$text = uniqid();
$path = 'temp/';
$file = $path.uniqid().".png";
$ecc = 'L';
$pixel_Size = 10;
$frame_Size = 5;
QRcode::png($text, $file, $ecc, $pixel_Size, $frame_Size);
这是关于如何将其插入数据库的完整 PHP 代码
include 'db_connect.php';
$conn = OpenCon();
if (isset($_POST['submit'])) {
$text = uniqid();
$path = 'temp/';
$file = $path.uniqid().".png";
$ecc = 'L';
$pixel_Size = 10;
$frame_Size = 5;
// Generates QR Code and Stores it in directory given
QRcode::png($text, $file, $ecc, $pixel_Size, $frame_Size);
$fname = $_POST['fname'];
$mname = $_POST['mname'];
$lname = $_POST['lname'];
$suffix = $_POST['suffix'];
$dept = $_POST['dept'];
$user_type = $_POST['user_type'];
$stat = 1;
$sql = "INSERT INTO users (qr, fname, mname, lname, suffix, dept, user_type, stat) VALUES ('$text','$fname','$mname','$lname','$suffix','$dept','$user_type','$stat')";
$result = $conn->query($sql);
if ($result == TRUE) {
echo '
<div class="alert alert-success alert-dismissible show fade">
User has been added!
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
';
} else {
echo "Error:". $sql . "<br>". $conn->error;
}
$conn->close();
}
您只需要生成一次uniqid()
,然后重复使用它:
$uniqueid = uniqid();
$text = $uniqueid;
$path = 'temp/';
$file = $path.$uniqueid.".png";
$ecc = 'L';
或更短的替代方案:
$text = uniqid();
$path = 'temp/';
$file = $path.$text.".png";
$ecc = 'L';
您错误地期望从函数中获得相同的 UniqueID,该函数每次被调用时 generates/returns“唯一”ID
我遇到了 uniqid
的问题。我正在尝试将 uniqid
保存在数据库中并用它创建一个 QR 码。正如我注意到的,最后一个字符串不一样。
示例:
这是已插入数据库的代码622b47895d332
,而存储的二维码文件名为622b47895d333.png
。
怎么可能数据库中的数据与二维码的文件名不匹配?
这是我目前用来生成二维码的代码..
$text = uniqid();
$path = 'temp/';
$file = $path.uniqid().".png";
$ecc = 'L';
$pixel_Size = 10;
$frame_Size = 5;
QRcode::png($text, $file, $ecc, $pixel_Size, $frame_Size);
这是关于如何将其插入数据库的完整 PHP 代码
include 'db_connect.php';
$conn = OpenCon();
if (isset($_POST['submit'])) {
$text = uniqid();
$path = 'temp/';
$file = $path.uniqid().".png";
$ecc = 'L';
$pixel_Size = 10;
$frame_Size = 5;
// Generates QR Code and Stores it in directory given
QRcode::png($text, $file, $ecc, $pixel_Size, $frame_Size);
$fname = $_POST['fname'];
$mname = $_POST['mname'];
$lname = $_POST['lname'];
$suffix = $_POST['suffix'];
$dept = $_POST['dept'];
$user_type = $_POST['user_type'];
$stat = 1;
$sql = "INSERT INTO users (qr, fname, mname, lname, suffix, dept, user_type, stat) VALUES ('$text','$fname','$mname','$lname','$suffix','$dept','$user_type','$stat')";
$result = $conn->query($sql);
if ($result == TRUE) {
echo '
<div class="alert alert-success alert-dismissible show fade">
User has been added!
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
';
} else {
echo "Error:". $sql . "<br>". $conn->error;
}
$conn->close();
}
您只需要生成一次uniqid()
,然后重复使用它:
$uniqueid = uniqid();
$text = $uniqueid;
$path = 'temp/';
$file = $path.$uniqueid.".png";
$ecc = 'L';
或更短的替代方案:
$text = uniqid();
$path = 'temp/';
$file = $path.$text.".png";
$ecc = 'L';
您错误地期望从函数中获得相同的 UniqueID,该函数每次被调用时 generates/returns“唯一”ID