WeChat開発のためのデータベース運用

Y2J
リリース: 2017-05-15 13:24:02
オリジナル
2001 人が閲覧しました

この記事では主にWeChatパブリックプラットフォーム開発のデータベース運用に関する関連情報を紹介しますので、必要な方は参考にしてください

1.はじめに

そこにあるAPIを呼び出すだけで機能開発が完了します。データベース操作ではありません。その後の高度な機能の開発ではデータベースを使用する必要があるため、この記事では読者の参考のためにMySQLデータベースの操作を簡単に紹介します。

2. アイデア分析

Baidu Developer Center は、強力なクラウド データベース (MySQL、MongoDB Redis を含む) を提供します。このチュートリアルでは、誰もが使い慣れている MySQL データベースの分析を実行します。 WeChatとデータベースの連携を実現するデモ。

BAE アプリケーションでクラウド データベースを使用するのは非常に簡単です。データベース リスト内の名前は、データベースに接続するときの dbname です。ユーザー名、パスワード、接続アドレス、ポートは、アプリケーションの環境変数を通じて取得されます。

標準の PHP Mysql または PHP Mysqli 拡張機能を使用してデータベースにアクセスできます。これら 2 つの拡張機能は BAE の PHP ですでに提供されており、アプリケーションで直接使用できます。

3. BAE 3.1 Baidu Developer Center -> クラウド環境 -> MySQL (クラウド データベース) にログインします。 > ;

データベースの作成

3.2 データベースの作成

注:

各アプリケーションには 1G の無料割り当てを享受できるデータベースが 1 つだけあり、他のデータベースには無料割り当ての割引は適用されません。この特典は、無料割り当てを使用したデータベースが削除された場合にのみ再度使用できます3.3 正常に作成されました

ここでデータベースの名前 (dbname) が確認できます。これは後で使用されます。

「phpMyadmin」をクリックしてデータベースにアクセスします。

3.4 phpMyadminインターフェース

新しいデータテーブルを作成し、テーブル名とフィールド数を入力し、「実行」をクリックしてテーブルを作成します。

3.5 テーブルの作成

フィールド名とフィールドタイプを入力後、下の「保存」をクリックするとテーブルの作成が完了します。

3.6 作成が完了しました

主キーとして id フィールドを変更し、AUTO_INCREMENT を追加し、from_user フィールドを一意 (UNIQUE) に変更してテーブルの変更を完了します。

テーブル作成操作は、次の SQL ステートメントを使用して完了することもできます。

CREATE TABLE IF NOT EXISTS `test_mysql`
 ( `id` int(11) NOT NULL AUTO_INCREMENT,
 `from_user` varchar(40) DEFAULT NULL, 
`account` varchar(40) DEFAULT NULL, 
`password` varchar(40) DEFAULT NULL,
 `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY 
`from_user` (`from_user`));
ログイン後にコピー

phpMyAdmin 操作

データベースとデータ テーブルの作成はここで終了します。コードは、詳細を説明するために以下に記述されます。データベースとデータテーブルの使用。

4. 公式サンプル (PHP MySQL)

BAE BAE が提供する公式デモ (PHP MySQL) のサンプルは次のとおりです:

mysql/basic.php ファイルの内容

<!--?php
 
require_once &#39;includes/configure.php&#39;;
 
class MySQLi_BAE{
 
  private $mysqli;
  private $host;
  private $user;
  private $password;
  private $port;
  private $database;
 
  //在类之外访问私有变量时使用
  function get($property_name){
    if(isset($this--->$property_name)){
      return($this->$property_name);
    }else{
      return(NULL);
    }  
  }
 
  function set($property_name, $value){
    $this->$property_name=$value;
  }
 
  function construct(){
 
    /*从平台获取查询要连接的数据库名称*/
    $this->database = MYSQLNAME;
 
    /*从环境变量里取出数据库连接需要的参数*/
    $this->host = getenv(&#39;HTTP_BAE_ENV_ADDR_SQL_IP&#39;);
    $this->user = getenv(&#39;HTTP_BAE_ENV_AK&#39;);
    $this->password = getenv(&#39;HTTP_BAE_ENV_SK&#39;);
    $this->port = getenv(&#39;HTTP_BAE_ENV_ADDR_SQL_PORT&#39;);
 
    $this->mysqli = new mysqli($this->host, $this->user, $this->password, $this->database, $this->port);
    if($this->mysqli->connect_error){
      die("Connect Server Failed:".$this->mysqli->error);
    }
     
    $this->mysqli->query("set names utf8");
  }
 
  //dql statement
  function execute_dql($query){
     
    $res = $this->mysqli->query($query) or die("操作失败".$this->mysqli->error);
    return $res;
     
    //$this->mysqli->close();
  }
 
  //dml statement
  function execute_dml($query){
     
    $res = $this->mysqli->query($query) or die("操作失败".$this->mysqli->error);
     
    if(!$res){
      return 0;//失败
    }else{
      if($this->mysqli->affected_rows > 0){
        return 1;//执行成功
      }else{
        return 2;//没有行受影响
      }
    }
   
    //$this->mysqli->close();
  }
}
?>
ログイン後にコピー

9.

9.1 DML操作のテストテストコード:

<!--?php
 
require_once "MySQLi_BAE.class.php";
 
$mysqli_BAE=new MySQLi_BAE();
 
 
//**************dml*******************
$sql="insert into test_mysql (from_user, account, password, update_time) values(&#39;David&#39;,&#39;860510&#39;, &#39;abcabc&#39;, &#39;2013-09-27 17:14:28&#39;)";
 
//$sql="update test_mysql set account = 860512 where account = 860510";
 
//$sql="delete from test_mysql where account = 860512";
 
$res=$mysqli_BAE--->execute_dml($sql);
 
if($res==0){
  echo "执行失败";
}elseif($res==1){
  echo "执行成功";
}else{
  echo "没有行数影响";
}
?>
ログイン後にコピー

テスト結果:

9.2 DQL操作のテスト

テストコード:

<!--?php
 
require_once "MySQLi_BAE.class.php";
 
$mysqli_BAE=new MySQLi_BAE();
 
//**************dql******************
$sql="select * from test_mysql";
 
$res=$mysqli_BAE--->execute_dql($sql);
 
while($row=$res->fetch_row()){
   
  foreach($row as $key=>$val){
    echo "$val--";
  }
  echo &#39;
&#39;;
}
 
$res->free();
?>
ログイン後にコピー

テスト結果:

10. WeChat とのインタラクションを実装する ( Mysqli 拡張機能)

10.1 事前操作A. MySQLi_BAE.class.php ファイルを導入します

//データベース関数ファイル require_once "MySQLi_BAE.class.php" を導入します

B.

オブジェクトをインスタンス化します

public functionconstruct( } ,'$keywords[1]','$keywords[2]','$nowtime')";$res = $this->mysqli_BAE->execute_dml($insert_sql);

0 テスト結果:。 10.3 テスト照会操作

テストコード:

$ select_sql = "select * from test_mysql where from_user = '$ Fromusername'" "; AE-& GT ;execute_dql($select_sql);$rows=$select_res ->fetch_array(MYSQLI_ASSOC);

テスト結果:

10.4 テスト更新操作

テストコード:

$update_sql="UPDATE test_mysql SET パスワード= '$new_password' WHERE from_user='$fromUser名前」 ;

$res = $this->mysqli_BAE->execute_dml($update_sql);

テスト結果:

10.5 テスト削除操作

テストコード:

$delete_sql="テストから削除_mysql どこにfrom_user='$fromUsername'";

$res = $this->mysqli_BAE->execute_dml($delete_sql);

テスト結果:

WeChat との対話テストは成功しました。

【関連推奨事項】

1.

特別な推奨事項

:

「php Programmer Toolbox」V0.1バージョンのダウンロード

2. WeChatパブリックアカウントプラットフォームのソースコードのダウンロード3.接続王 v3.4.5 アドバンス ビジネス バージョン WeChat ルービック キューブ ソース コード

以上がWeChat開発のためのデータベース運用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート