繁体   English   中英

如何将数据库中的 ID 编号存储到我将使用 PHP 生成的二维码中?

[英]How to store id number in my database to the QR code that I will generate using PHP?

我是 PHP 新手,目前我正在创建一个二维码生成器。 但是,我遇到了一些问题,我不知道如何将我的数据库的详细信息连接到 QR 码。 我的意思是我想在我的数据库中使用字段 idNum 作为在我的二维码中生成的文本。 以下是我的代码示例:

include('phpqrcode/qrlib.php');

$text="Hello";

$path = 'qrcodes/';
$file = $path.uniqid().".png";

$ecc = 'L'; // error correction capability
$pixel_Size = 170;
$frame_size = 10;

QRcode::png($text, $file, $ecc, $pixel_Size, $frame_Size);

我想在我的数据库中显示 idNum,而不是文本“Hello”。 如何? TY

这也是我创建的一个尝试代码,但是当我扫描二维码时,没有显示任何值。 任何建议为什么?

$connection = mysqli_connect("localhost", "root", "", "db_bakascts") or die(mysqli_error($mysqli)); 

$id=isset($_POST['idNum']);
$sql = "SELECT * FROM tb_usersreg WHERE idNum='$id'";

$result=mysqli_query($connection,$sql) or die("Error");

    $width = "250";
    $height = "250";
    
    $url = "https://chart.googleapis.com/chart?cht=qr&chs={$width}x{$height}&chl={$id}";
    $qr["img"] = $url;

我创建了一个简单的工作示例,包含一个 list.php 和 qr.php。

列表.php

这将根据数据库中的 id 显示一个二维码列表。

$connection = mysqli_connect("localhost", "root", "", "db_bakascts") or die(mysqli_error($mysqli)); 

$sql = "SELECT * FROM tb_usersreg";
$result=mysqli_query($connection,$sql) or die("Error");

foreach($result as $result) {
    echo "<img src='qr.php?idNum={$result['idNum']}' />";
}

php文件

Qr.php 将根据给定的 idNum 呈现二维码。

include('phpqrcode/qrlib.php');

$id=isset($_GET['idNum']) ? $_GET['idNum'] : trigger_error("No idNum given");
QRcode::png($id); //this will output the qr code directly as an image 

输出 (list.php)

我的数据库中有 2 条记录。

由于您在问题中解释了您想根据数据库中的 id 生成一些 QR 码,因此我创建了这个简单的示例。 如果需要,您可以根据需要进一步调整它。

注意:您可以改进您的代码

我假设你想要像我上面给出的例子那样的东西。 但我想指出您的代码中的一些代码改进:

1. $id=isset($_POST['idNum']);

这将返回一个布尔值,而不是数字 id 值。 您可以查看我的代码是如何实现的:

$id=isset($_GET['idNum']) ? $_GET['idNum'] : trigger_error("No idNum given");

2. 使用 mysqli_real_escape_string 和查询参数

如果您必须在查询中使用参数,请使用 mysqli_real_escape_string 来防止 SQL 注入。

$sql = "SELECT * FROM tb_usersreg WHERE idNum='".mysqli_real_escape_string($id) . "'";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM