我正在尝试在我的工作场所设置图书库。我已经设置了MySQL数据库,包含数据和所有内容。现在我要做的是有能力让某人拿起他们的电话,扫描某个书的二维码,然后就可以查看这本书。我在数据库中有一个字段,表明该书是否已签出,另一个表明签出的签出日期。如何通过互联网和QR码从外部访问我的数据库,并让QR码更改数据库的特定字段中的数据,谢谢。我使用phpMyAdmin设置数据库,我的webhost是iPage.com。
答案 0 :(得分:1)
正如我在评论中已经提到的那样,你的问题是Tranfer QR Code Into a MySql Database的问题。但是在你的问题中有更多的观点不清楚:到目前为止,我做了一些研究,一些来自iPage.com支持的人告诉我,你的webhoster 支持所有软件包。
对于数据库访问,请使用prepared statements和PDO。这是关于PDO的good tutorial。
基本上你必须检查是否启用了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,浏览器将自动打开应用程序。如果不是,用户将获得一个简单的网站,让他或她提示如何安装应用程序 您只需链接到该页面,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;
}
?>