一、简介
前面讲解的功能开发都是简单的调用API 完成的,没有对数据库进行操作。在接下来的高级功能开发中,需要使用到数据库,所以在这一篇中,将对MySQL 数据库的操作做一下简单的介绍,以供读者参考。
二、思路分析
百度开发者中心提供了强大的云数据库(包括MysqL, MongoDB, Redis),在这一节教程中,我们将对大家比较熟悉的MysqL 数据库进行操作演示,实现微信与数据库的交互。
在BAE应用中使用云数据库十分简单,数据库列表中的名称即是连接数据库时的dbname。用户名、密码、连接地址和端口在应用中通过环境变量取出。
可使用标准的PHP MysqL 或PHP MysqLi 扩展访问数据库,BAE的PHP中已提供这两个扩展,应用可直接使用。
三、创建BAE MySQL数据库
3.1 登陆百度开发者中心 -> 管理中心 -> 选择应用 -> 云环境 -> 服务管理 -> MysqL(云数据库) -> 创建数据库
3.2 创建数据库
注意:每个应用有且只有一个数据库享受1G免费配额,其余数据库均不享受免费配额优惠。只有将已使用免费配额的数据库删除,才能再次使用此项优惠。
3.3 创建成功
在这里可以看到数据库的名称,也就是dbname,后面会使用到。
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 操作
数据库及数据表的创建到此结束,下面将编写代码对数据库及数据表的使用做详细讲解。
<!--?PHP require_once 'includes/configure.PHP'; 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('HTTP_BAE_ENV_ADDR_sql_IP'); $this->user = getenv('HTTP_BAE_ENV_AK'); $this->password = getenv('HTTP_BAE_ENV_SK'); $this->port = getenv('HTTP_BAE_ENV_ADDR_sql_PORT'); $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.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('David','860510', 'abcabc', '2013-09-27 17:14:28'); //$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 ' '; } $res->free(); ?>
测试结果:
十、实现与微信的交互(MysqLi 扩展)
10.1 前置操作
//引入数据库函数文件require_once MysqLi_BAE.class.PHP;
B. 实例化对象
public function construct(){ $this->MysqLi_BAE=new MysqLi_BAE();}
10.2 测试插入操作
测试代码:
$insert_sql=INSERT INTO test_MysqL(from_user, account, password, update_time) VALUES('$fromUsername',
'$keywords[1]','$keywords[2]','$Nowtime');$res = $this->MysqLi_BAE->execute_dml($insert_sql);
测试结果:
10.3 测试查询操作
测试代码:
$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);
测试结果:
10.4 测试更新操作
测试代码:
$update_sql=UPDATE test_MysqL SET password='$new_password' WHERE from_user='$fromUsername';
$res = $this->MysqLi_BAE->execute_dml($update_sql);
测试结果:
10.5 测试删除操作
测试代码:
$delete_sql=DELETE FROM test_MysqL WHERE from_user='$fromUsername';
$res = $this->MysqLi_BAE->execute_dml($delete_sql);
测试结果:
与微信交互测试成功。
【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
2. 微信公众号平台源码下载