1

我正在尝试在我的工作场所建立一个图书馆。我已经设置了 MySQL 数据库,其中包含数据和所有内容。现在我想做的是让某人能够拿起他们的手机,扫描某本书的二维码,然后它会检查这本书。我在数据库中有一个字段说明这本书是否已签出,另一个说明签出日期。我将如何通过互联网和二维码从外部访问我的数据库,并让二维码在我的数据库的特定字段中更改数据,谢谢。我使用 phpMyAdmin 设置数据库,我的虚拟主机是 iPage.com。

4

2 回答 2

1

正如我已经在评论中指出的那样,您的问题与Tranfer QR Code Into a MySql Database问题很相似。但是在您的问题中还有更多不清楚的地方:到目前为止,我做了一些研究,一些来自 iPage.com 支持的人告诉我,您的 webhoster在所有软件包中都支持 php 。

所以我会给你一些提示,你可以如何用 php 实现它:

对于数据库访问,请使用准备好的语句PDO。这是一个关于 PDO的好教程。

对于某种REST API的干净和简单的 url,请使用带有 .htaccess的mod_rewrite :

基本上你必须检查是否启用了 mod rewrite。在您的情况下,您可以跳过此步骤,但通常您必须检查您的目录指令中是否有AllowOverride All声明。

只需将此代码放入您的 .htaccess 文件中:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /
  RewriteRule ^/?searchbook/(.*)$ yourphpfile.php?qr=$1
</IfModule>

yourphpfile.php所以你可以通过这个简单的变量访问来访问二维码:

$_GET['qr']

对于扫描部分,您可以使用ZXing Barcode Scanner 应用程序

如果用户安装了ZXing,浏览器会自动打开应用。如果不是,用户将获得一个简单的站点,该站点会提示他或她如何安装应用程序。
您只需链接到页面,二维码的结果值将提交到 URL http://example.com/seachbook/QR-code-content

http://zxing.appspot.com/scan?ret=http%3A%2F%2Fexample.com%2Fsearchbook%2F%7BCODE%7D%2Fdescription&SCAN_FORMATS=QR_CODE

另请参阅ZXing 文档的完整说明。

于 2013-05-04T09:45:35.127 回答
0

一般来说,这当然是可能的。实际上每个二维码/条码都存储信息。但通常该信息的大小非常小。通常只存储 URL 或数字 (ID) 之类的引用,并使用这些引用从数据库中检索“真实”数据。但严格来说,这是一种将信息存储在 QRCode/条形码中的形式。

仔细观察,我们会发现数据存储在代码本身中,而不是存储在数据库中(如果我们谈论的是少量数据)。当然,读取代码时可以将数据存储在数据库中,您所需要的只是一个微不足道的软件。但这在大多数情况下没有什么意义,因为数据已经存储了。如果您想使用数据库来组合来自不同来源的数据,那么如果您只想使用代码作为一种传输方式,那么读取代码只是用键盘输入信息的替代品。所以这里没有魔法,你不需要考虑任何特定的代码。

这是直接在db中生成QR的php脚本

<?php
class QRGenerator { 

    protected $size; 
    protected $data; 
    protected $encoding; 
    protected $errorCorrectionLevel; 
    protected $marginInRows; 
    protected $debug; 

    public function __construct($data='http://www.tutorial.makersofandroid.com',$size='300',$encoding='UTF-8',$errorCorrectionLevel='L',$marginInRows=4,$debug=false) { 

        $this->data=urlencode($data); 
        $this->size=($size>100 && $size<800)? $size : 300; 
        $this->encoding=($encoding == 'Shift_JIS' || $encoding == 'ISO-8859-1' || $encoding == 'UTF-8') ? $encoding : 'UTF-8'; 
        $this->errorCorrectionLevel=($errorCorrectionLevel == 'L' || $errorCorrectionLevel == 'M' || $errorCorrectionLevel == 'Q' || $errorCorrectionLevel == 'H') ?  $errorCorrectionLevel : 'L';
        $this->marginInRows=($marginInRows>0 && $marginInRows<10) ? $marginInRows:4; 
        $this->debug = ($debug==true)? true:false;     
    }
public function generate(){ 

        $QRLink = "https://chart.googleapis.com/chart?cht=qr&chs=".$this->size."x".$this->size.                            "&chl=" . $this->data .  
                   "&choe=" . $this->encoding . 
                   "&chld=" . $this->errorCorrectionLevel . "|" . $this->marginInRows; 
        if ($this->debug) echo   $QRLink;          
        return $QRLink; 
    }
?>
于 2017-02-07T08:18:15.467 回答