10 實例講解微信公眾號開發(fā)-圖書信息保存

圖書信息保存

現(xiàn)在我們已經(jīng)能夠通過調(diào)用微信公眾號的掃碼藏書功能獲取到我們的藏書信息没炒,但是這些信息僅僅在微信公眾號上進(jìn)行了顯示帜矾,沒有保存下來豺型,為了將我們藏書保存后續(xù)查看,還需要將這些圖書信息記錄到數(shù)據(jù)庫中饼齿。

在之前安裝的xampp中包含了mysql數(shù)據(jù)庫饲漾,只需要在xampp-control開啟mysql服務(wù)就可以使用。

mysql-config.png

打開后在瀏覽器中輸入http://127.0.0.1/phpmyadmin 就可以進(jìn)入mysql的控制界面缕溉。

通過左側(cè)的新建按鈕新建一個數(shù)據(jù)庫wxbook.

createtable.png

在數(shù)據(jù)庫wxbook中增加一個表wb_bookinfo考传,表結(jié)構(gòu)可以使用phpMyAdmin圖形化方式創(chuàng)建,也可以使用SQL語句創(chuàng)建证鸥。

wx_bookinfo.png

建表SQL語句

CREATE TABLE `wxbook`.`wb_bookinfo` (
`isbn10` VARCHAR(20)NULL DEFAULT NULL ,
`isbn13` VARCHAR(20) NOT NULL ,
`title`VARCHAR(200) NULL DEFAULT NULL ,
`author`VARCHAR(100) NULL DEFAULT NULL ,
`price` FLOAT(4) NULL DEFAULT NULL ,
`image`VARCHAR(256) NULL DEFAULT NULL ,
`translator` VARCHAR(100) NULL DEFAULT NULL,
`publisher` VARCHAR(100) NULL DEFAULT NULL ,
`summary` VARCHAR(1024) NULLDEFAULT NULL ,
`rating` DECIMAL(4) NULL DEFAULT NULL ,
`createtime` DATETIMENOT NULL DEFAULT CURRENT_TIMESTAMP )
ENGINE = InnoDB COMMENT = 'book information’;

在處理scancode_waitmsg的消息中僚楞,增加入庫動作,代碼如下:

case "scancode_waitmsg":
$isbn = substr($object->ScanCodeInfo->ScanResult, 7);
$content = "isbn:" . $isbn;
$douBanObj = new DoubanApi();
$bookInfo = $douBanObj->getDoubanInfo($isbn);
$image = $bookInfo["images"]["large"];
if (is_array($bookInfo['author']) && sizeof($bookInfo['author']) > 0) {
$bookInfo['author'] = $bookInfo['author'][0];
} else {
$bookInfo['author'] = '';
}
$content = array();
$summary = mb_substr($bookInfo['summary'], 0, 200, 'utf-8') . '...';
$content[] = array(
"Title" => "已成功添加:" . $bookInfo["title"],
"Description" => $summary,
"PicUrl" => $image,
"Url" => "",
);
/*將圖書信息入庫處理*/
$db= new Wb_db();
$db->connect("localhost", "root", "");
$db->selectDB('wxbook');

$bi = new Wb_bookinfo($db);
$bi-> insertBookInfo($bookInfo);
$db->closeDB();

處理mysql入庫動作的類代碼如下:

class Wb_db
{
public $conn = null;
public function connect($host, $user, $password)
{
//$con = mysqli_connect("localhost", "root", "");
$con = mysqli_connect($host, $user, $password);
if (!$con) {
die('Could not connect: ' . mysql_error());
}
$this->conn = $con;
return $con;
}
public function selectDB($database)
{
if (!$this->conn) {
die('Could not connect: ' . mysql_error());
return;
}
$program_char = "utf8";
mysqli_select_db($this->conn,$database);
mysqli_query($this->conn,"SET NAMES 'utf8'");
mysqli_set_charset($this->conn,$program_char);
//$charset = mysqli_client_encoding($this->conn);
}
public function queryDB($sql)
{
if (!$this->conn) {
die('Could not connect: ' . mysql_error());
return;
}
$result = mysqli_query($this->conn,$sql);
if (!$result) {
die('Error: ---' . $this->conn->errno.':'.$this->conn->error);
return false;
} else {
echo "excute success";
return $result;
}
}
public function closeDB()
{
if (!$this->conn) {
die('Could not connect: '.mysql_errno.":".mysql_error());
return;
}
mysqli_close($this->conn);
}
}

class Wb_bookinfo
{

public $db = null;
public function __construct($database)
{
$this->db = $database;
}
public function insertBookInfo($bookInfo)
{
if ($bookInfo['title'] == '' or $bookInfo['isbn13'] == '') {
return false;
}
if (is_array($bookInfo['author']) && sizeof($bookInfo['author']) > 0) {
$bookInfo['author'] = $bookInfo['author'][0];
} else {
$bookInfo['author'] = '';
}
if (is_array($bookInfo['translator'])) {
if (count($bookInfo['translator']) > 0) {
$bookInfo['translator'] = $bookInfo['translator'][0];
} else {
$bookInfo['translator'] = '';
}
}
if (mb_strlen($bookInfo['summary'], "UTF-8") > 500) {
$summary = mb_substr($bookInfo['summary'], 0, 499, 'utf-8') . '...';
} else {
$summary = $bookInfo['summary'];
}
#var_dump($bookInfo);
$sql = sprintf("replace INTO wb_bookinfo(isbn10, isbn13,title,author,price,image,translator,
publisher,summary,rating)
VALUES ('%s','%s','%s','%s',%f,'%s','%s','%s','%s',%f)",
$bookInfo["isbn10"],
$bookInfo["isbn13"],
$bookInfo["title"],
$bookInfo["author"],
$bookInfo["price"],
$bookInfo["image"],
$bookInfo["translator"],
$bookInfo["publisher"],
$summary,
$bookInfo['rating']['average']);

$query = $this->db->queryDB($sql);
return $query;
}

}

增加圖書信息入功能后枉层,在掃碼以后就可以將信息同步存入數(shù)據(jù)庫中泉褐,方便后續(xù)使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸟蜡,一起剝皮案震驚了整個濱河市膜赃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矩欠,老刑警劉巖财剖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異癌淮,居然都是意外死亡躺坟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門乳蓄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咪橙,“玉大人,你說我怎么就攤上這事虚倒∶勒欤” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵魂奥,是天一觀的道長菠剩。 經(jīng)常有香客問我,道長耻煤,這世上最難降的妖魔是什么具壮? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮哈蝇,結(jié)果婚禮上棺妓,老公的妹妹穿的比我還像新娘。我一直安慰自己炮赦,他們只是感情好怜跑,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吠勘,像睡著了一般性芬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上看幼,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天批旺,我揣著相機與錄音,去河邊找鬼诵姜。 笑死汽煮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的棚唆。 我是一名探鬼主播暇赤,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宵凌!你這毒婦竟也來了鞋囊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤瞎惫,失蹤者是張志新(化名)和其女友劉穎溜腐,沒想到半個月后译株,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡挺益,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年歉糜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片望众。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡匪补,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烂翰,到底是詐尸還是另有隱情夯缺,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布甘耿,位于F島的核電站踊兜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏棵里。R本人自食惡果不足惜润文,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望殿怜。 院中可真熱鬧典蝌,春花似錦、人聲如沸头谜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柱告。三九已至截驮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間际度,已是汗流浹背葵袭。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乖菱,地道東北人坡锡。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像窒所,于是被迫代替她去往敵國和親鹉勒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容