将以上函数和连接数据库的代码结合起来,生成mysql_bae.func.php 文件,供下面测试使用。
六、测试MySQL 函数使用
6.1 新建文件dev_mysql.php 在同一目录下并引入mysql_bae.func.php 文件
Code:
require_once './mysql_bae.func.php';
6.2 测试创建表
将上面使用phpMyAdmin 创建的test_mysql 表删除,测试语句如下:
Code:
//创建表
$create_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`)
)";
echo _create_table($create_sql);
测试正确结果:
到phpMyAdmin中查看
故意将SQL语句写错
测试错误结果:
6.3 测试插入数据
测试语句如下:
Code:
//插入数据
$insert_sql = "insert into test_mysql(from_user, account, password, update_time) values('David','860510', 'abcabc', '2013-09-29 17:14:28')";
$res = _insert_data($insert_sql);
if($res == 1){
echo "插入成功";
}else{
echo "插入失败";
}
测试结果:
6.4 测试更新数据
测试语句如下:
Code:
//更新数据
$update_sql = "update test_mysql set account = 860512 where account = 860510";
$res = _update_data($update_sql);
if($res == 1){
echo "更新成功";
}elseif($res == 0){
echo "更新失败";
}elseif($res == 2){
echo "没有行受到影响";
}
测试结果:
再次更新:
6.5 测试删除数据
测试语句如下:
Code:
//删除数据
$delete_sql = "delete from test_mysql where account = 860512";
$res = _delete_data($delete_sql);
if($res == 1){
echo "删除成功";
}elseif($res == 0){
echo "删除失败";
}elseif($res == 2){
echo "没有该条记录";
}
测试结果:
再次删除:
6.6 测试检索数据
再次执行上面的插入操作做检索测试,测试语句如下:
Code:
//检索数据
$select_sql = "select * from test_mysql";
$result = _select_data($select_sql);
while($rows = mysql_fetch_array($result,MYSQL_ASSOC)){
echo $rows[id]."--".$rows[from_user]."--".$rows[account]."--".$rows[password]."--".$rows[update_time];
echo "<br />";
}
测试结果:
6.7 测试删除表
测试语句如下:
Code:
//删除表
$drop_sql = "drop table if exists test_mysql";
echo _drop_table($drop_sql);
测试结果:
MySQL 函数测试全部成功。
七、实现与微信的交互(Mysql 扩展)
保证数据库中存在test_msyql表,这里测试微信对MySQL数据库的增删改查操作,不考虑特殊情况,只按照下面的方法测试:
Code:
1. 绑定+账户+密码
如:绑定+860512+abc123
2. 查询
如:查询
3. 修改+旧密码+新密码
如:修改+abc123+123456
4. 删除
如:删除
7.1 引入mysql_bae.func.php 文件
Code:
//引入数据库函数文件
require_once 'mysql_bae.func.php';
7.2 前置操作
A. 将输入的语句拆分成数组,以“+”号分隔
Code:
$keywords = explode("+",$keyword);
B. 获取当前时间
Code:
//获取当前时间
$nowtime=date("Y-m-d G:i:s");
C. 判断用户是否已经绑定
Code:
//判断是否已经绑定
$select_sql="SELECT id from test_mysql WHERE from_user='$fromUsername'";
$res=_select_data($select_sql);
$rows=mysql_fetch_array($res, MYSQL_ASSOC);
if($rows[id] <> ''){
$user_flag='y';
}
7.3 测试插入操作
测试代码:
Code:
if(trim($keywords[0] == '绑定')){
if($user_flag <> 'y'){
$insert_sql="INSERT INTO test_mysql(from_user, account, password, update_time) VALUES('$fromUsername','$keywords[1]','$keywords[2]','$nowtime')";
$res = _insert_data($insert_sql);
if($res == 1){
$contentStr = "绑定成功";
}elseif($res == 0){
$contentStr = "绑定失败";
}
}else{
$contentStr = "该账户已绑定";
}
}
测试结果:
7.4 测试查询操作
测试代码:
Code:
if(trim($keywords[0] == '查询')){
$select_sql="SELECT * FROM test_mysql WHERE from_user='$fromUsername'";
$select_res=_select_data($select_sql);
$rows=mysql_fetch_assoc($select_res);
if($rows[id] <> ''){
$contentStr="账户:$rows[account]\n"."密码:$rows[password]\n"."From_user:$rows[from_user]\n"."更新时间:$rows[update_time]";
}else{
$contentStr="您还未绑定账户,查询不到相关信息,请先绑定,谢谢!";
}
}
测试结果:
7.5 测试更新操作
测试代码:
Code:
if(trim($keywords[0] == "修改")){
$old_password=$keywords[1];
$new_password=$keywords[2];
$select_password_sql="SELECT * FROM test_mysql WHERE from_user='$fromUsername'";
$select_res=_select_data($select_password_sql);
$rows=mysql_fetch_assoc($select_res);
if($old_password == $rows[password]){
$update_sql="UPDATE test_mysql SET password='$new_password' WHERE from_user='$fromUsername'";
$res = _update_data($update_sql);
if($res == 1){
$contentStr = "修改成功";
}elseif($res == 0){
$contentStr = "修改失败";
}
}else{
$contentStr = "原密码有误,请确认后重试";
}
}