将MySQL db连接到QR码

时间:2013-05-01 08:27:15

标签: mysql database phpmyadmin external qr-code

我正在尝试在我的工作场所设置图书库。我已经设置了MySQL数据库,包含数据和所有内容。现在我要做的是有能力让某人拿起他们的电话,扫描某个书的二维码,然后就可以查看这本书。我在数据库中有一个字段,表明该书是否已签出,另一个表明签出的签出日期。如何通过互联网和QR码从外部访问我的数据库,并让QR码更改数据库的特定字段中的数据,谢谢。我使用phpMyAdmin设置数据库,我的webhost是iPage.com。

2 个答案:

答案 0 :(得分:1)

正如我在评论中已经提到的那样,你的问题是Tranfer QR Code Into a MySql Database的问题。但是在你的问题中有更多的观点不清楚:到目前为止,我做了一些研究,一些来自iPage.com支持的人告诉我,你的webhoster 支持所有软件包

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

对于数据库访问,请使用prepared statementsPDO。这是关于PDO的good tutorial

对于使用.htaccess的某些REST API使用mod_rewrite的干净且简单的网址:

基本上你必须检查是否启用了mod重写。在您的情况下,您可以跳过此操作,但一般情况下,您必须检查AllowOverride All中是否有directory directive个名称。

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

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

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

$_GET['qr']

对于扫描部分,您可以使用ZXing Barcode Scanner app

如果用户安装了ZXing,浏览器将自动打开应用程序。如果不是,用户将获得一个简单的网站,让他或她提示如何安装应用程序 您只需链接到该页面,qr代码的结果值将提交到网址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 documentation的完整说明。

答案 1 :(得分:0)

一般来说,这当然是可能的。实际上每个QRCode /条形码都存储信息。但通常这些信息的大小非常小。通常只会存储像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; 
    }
?>