微信公眾號開發之數據庫,公眾開發數據庫
1.初始化數據庫
我用的是新浪SAE上的MYSQL。
官方文檔:https://www.sinacloud.com/doc/sae/php/mysql.html#api-shi-yong-shou-ce


2.查詢語句
鏈接數據庫:(SAE提供了基於MYSQL模塊的SaeMysql類)
$mysql = new SaeMysql();
直接實例化即完成鏈接操作,無須進行其他操作。
例如:
增加數據:(注意weixin附近的不是單引號,是TAB鍵上面那個鍵的值)
$mysql = new SaeMysql();
$sql = "insert into `weixin`(`id`,`title`,`content`) values(null,"haha",:"gaga")";
3.公眾號關鍵詞查詢

![]()
1 case "text"://文本消息
2 if($keyword == "天氣"){
3 $weatherurl="http://api.map.baidu.com/telematics/v3/weather?location=杭州&ak=f6UkU0QqVAhABUeGKSxZBCeb";
4 $apistr = file_get_contents($weatherurl);
5 $apiobj = simplexml_load_string($apistr);
6 $placeobj = $apiobj->results->currentCity;//讀取城市名
7 $todayobj = $apiobj->results->weather_data->date;//讀取當前時間
8 $weatherobj = $apiobj->results->weather_data->weather;//讀取天氣
9 $windobj = $apiobj->results->weather_data->wind;//讀取風力
10 $temobj = $apiobj->results->weather_data->temperature;//讀取溫度
11 $pm25obj = $apiobj->results->pm25;//讀取pm2.5
12 $contentStr = "{$placeobj}{$todayobj},天氣:{$weatherobj},風力:{$windobj},溫度:{$temobj},pm2.5:{$pm25obj}.";
13 }else{
14 $mysql = new SaeMysql();
15 $sql = "select * from `weixin` where `title` like '%{$keyword}%'";
16 $data = $mysql->getData($sql);
17 if($data == null){
18 $contentStr = "Hi,海仙日用百貨歡迎您!\n回復數字'1',了解店鋪地址.\n回復數字'2',了解商品種類.\n"
19 ."回復'天氣',獲取杭州天氣情況.\n發送語音消息和地理位置信息,有更多驚喜等著你.";
20 }else{
21 $contentStr = $data[0][content];
22 }
23 }
24 break;
關鍵詞查詢
4.識別新老用戶
手機微信客戶端傳輸到微信公眾賬號的用戶信息為加密的openid,保存在變量$fromUsername中,我們可以將$fromUsername保存到數據庫中,從而實現CRM(客戶關系管理)。
新建數據表crm:

![]()
1 CREATE TABLE `app_landiljy`.`crm` (
2 `id` INT NOT NULL AUTO_INCREMENT ,
3 `user` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
4 PRIMARY KEY ( `id` )
5 ) ENGINE = INNODB;
create table
先判斷是新客戶還是老客戶,當新客戶發送“你好”時,回復“歡迎新朋友”;當老客戶發送“你好”時,回復“歡迎老朋友”。

![]()
1 if($keyword == "你好" || $keyword == "您好"){
2 $mysql = new SaeMysql();
3 $sql = "select * from `crm` where `user` = '{$fromUsername}'";
4 $data = $mysql->getData($sql);
5 $user = $data[0][user];
6 if(empty($user)){
7 $sql="insert into `crm`(`id`,`user`) values(null,'{$fromUsername}')";
8 $mysql->runSql($sql);
9 $contentStr = "歡迎新朋友";
10 }else{
11 $contentStr = "歡迎老朋友";
12 }
crm