Maison  >  Article  >  Applet WeChat  >  Opération de base de données pour le développement de WeChat

Opération de base de données pour le développement de WeChat

Y2J
Y2Joriginal
2017-05-15 13:24:021935parcourir

Cet article présente principalement les informations pertinentes sur le fonctionnement de la base de données du développement de la plateforme publique WeChat. Les amis dans le besoin peuvent s'y référer

1 Introduction

Les fonctions. expliqué précédemment Le développement s'effectue en appelant simplement API sans utiliser la base de données. Dans le développement ultérieur de fonctions avancées, une base de données devra être utilisée, donc dans cet article, le fonctionnement de la base de données MySQL sera brièvement présenté pour référence aux lecteurs.

2. Analyse des idées

Baidu Developer Center fournit de puissantes bases de données cloud (notamment MySQL, MongoDB, Redis), dans ce tutoriel, nous démontrerons le fonctionnement de la base de données MySQL que tout le monde connaît et réaliserons l'interaction entre WeChat et la base de données.

Il est très simple d'utiliser la base de données cloud dans l'application BAE. Le nom dans la liste des bases de données est le nom de la base de données lors de la connexion à la base de données . Le nom d'utilisateur, le mot de passe, l'adresse de connexion et le port sont récupérés via les variables d'environnement de l'application.

Vous pouvez utiliser l'extension standard PHP Mysql ou PHP Mysqli pour accéder à la base de données. Ces deux extensions sont déjà fournies dans le PHP de BAE et peuvent être utilisées directement par l'application.

3. Créer BAE Base de données MySQL

3.1 Connectez-vous au Centre de développement Baidu-> Environnement cloud-> Gestion des services-> MySQL (base de données cloud) -> Créer une base de données

Remarque :

Chaque application possède une et une seule base de données qui bénéficie du quota gratuit de 1G, et les autres bases de données ne bénéficient pas de la remise sur le quota gratuit. Cette offre ne peut être réutilisée qu'en

supprimant la base de données ayant utilisé le quota gratuit.

3.3 Créé avec succès Ici vous pouvez voir le nom de la base de données, qui est dbname, qui sera utilisé plus tard. Cliquez sur « phpMyadmin » pour accéder à la base de données.

3.4 Interface phpMyadmin

Créez une nouvelle table de données, entrez le nom de la table et le nombre de champs, puis cliquez sur "Exécuter" pour créer la table.

3.5 Créer un tableau

Entrez le nom du champ et le type de champ Après avoir saisi, cliquez sur "Enregistrer" ci-dessous pour terminer la création du tableau.

3.6 Création terminée

Modifiez le champ id comme clé primaire et ajoutez AUTO_INCREMENT modifiez le champ from_user en unique (UNIQUE) pour terminer la modification de ; le tableau.

L'opération de création de table peut également être complétée à l'aide de l'instruction SQL suivante :

Opération phpMyAdmin

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`));
La création de la base de données et de la table de données se termine ici. Ensuite, nous écrirons du code pour expliquer en détail l'utilisation de la base de données et de la table de données.

4. Exemple officiel (PHP MySQL)

L'exemple de démonstration (PHP MySQL) officiellement fourni par BAE est le suivant :

mysql/basic Contenu du fichier .php

9. Utilisation des classes de test

9.1 Test du fonctionnement DML
<!--?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();
  }
}
?>

Code de test :

Résultats des tests :

<!--?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 Test de fonctionnement DQL

Code de test :

Résultats des tests :

<!--?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. Implémenter l'interaction avec WeChat (extension MySQLi)

10.1 Pré-opérations

A Présenter la classe MySQLi_BAE. Fichier .php //Introduire le fichier de fonction de base de données require_once "MySQLi_BAE.class.php";

B Instancier l'

objet

fonction publique. construct(){ $this->mysqli_BAE=new MySQLi_BAE();}

10.2 Test de l'opération d'insertionCode de test :

$insert_sql="INSERT INTO test_mysql( from_user, compte, mot de passe, update_time) VALUES('$fromUsername',

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

Résultats des tests :

10.3 Opération de requête de test

Code de test :

$select_sql="SELECT * FROM test_mysql WHERE from_user ='$fromUsername'";

$select_res=$this->mysqli_BAE->execute_dql($select_sql);$rows=$select_res->fetch_array(MYSQLI_ASSOC);

Résultats des tests :

10.4 Test de l'opération de mise à jour

Code de test :

$update_sql="UPDATE test_mysql SET password='$new_password' WHERE from_user='$fromUsername'";

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

Résultat du test :

10.5 Test de l'opération de suppression

Code de test :

$delete_sql="DELETE FROM test_mysql WHERE from_user='$fromUsername'";

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

Résultat du test :

Le test d'interaction avec WeChat a réussi.

【Recommandations associées】

1. Recommandation spéciale : "php Programmer Toolbox" version V0.1 Télécharger

2. Téléchargement du code source de la plateforme de compte public WeChat

3 Code source de WeChat People King v3.4.5 Advanced Business Edition WeChat Rubik's Cube

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn