上一节主要是一些准备知识,本课还是准备知识,开发微信也可以不使用数据库,但是要想搭建一些查询类应用,就可能使用到数据库操作,所以本节主要涉及到百度BAE上面的数据库表的创建,插入数据,修改数据,删除数据,删除表,以及事务操作。
开发前去bae创建应用,然后添加数据库MySQL,就会自动生成一个数据库名称,是一串字符串。
这里使用mysqli,测试,MySQL差不多。
$dbname = "tIXZeAfkXSSgYzKuMwGZ";//百度bae数据库 这就是生成的数据库,要替换成自己的 /*从环境变量里取出数据库连接需要的参数*/ $host = getenv('HTTP_BAE_ENV_ADDR_SQL_IP'); $port = getenv('HTTP_BAE_ENV_ADDR_SQL_PORT'); $user = getenv('HTTP_BAE_ENV_AK'); $pwd = getenv('HTTP_BAE_ENV_SK'); $db= new mysqli($host,$user,$pwd,$dbname,$port); if(mysqli_connect_errno()){ die("coonet error").mysqli_connect_errno(); }else{ echo 'ok'; } $db->query("set names utf8");
这就是百度bae数据库连接,接着就可以使用mysqli相关数据库方法去操作了。
1.创建表
$sql = "create table if not exists t_mysql( id int(10) primary key AUTO_INCREMENT, no int(10), name VARCHAR(255))"; $result = $db->query($sql); if($result){ echo "创建表成功"; }
2.插入
$sql ="insert into t_mysql(id,no,name) values(null,1,'你好')"; $result = $db->query($sql); if($result){ echo '插入成功'; }
3.修改
$sql ="update t_mysql set name='重活' where id=1"; $result = $db->query($sql); if($db->affected_rows>0 && $result){ echo '修改成功'; }
4.删除
$sql ="delete from t_mysql where id=4"; $result = $db->query($sql); if($result && $db->affected_rows>0){ echo '删除成功'; }
5.查询
$sql = "select * from t_mysql"; $result = $db->query($sql); if($result){ $row = $result->fetch_row(); //索引数组 $r[0] print_r($row); }
6.删除表
$sql = "drop table if exists t_mysql"; $result = $db->query($sql); if($result){ echo "删除表成功"; }
7.事务(注意只有innoDB引擎支持 myisam不支持事务)
$db->autocommit(FALSE); $result1 = $db->query("insert into t_mysql values(null,3,'2333')"); $result2 = $db->query("insert into t_mysql values(null,5,'44433')"); if($result1 && $result2){ $db->commit(); echo 'ok'; }else{ $db->rollback(); }
上面就是BAE的基本操作,其实就是一般php操作数据库,足够在上边搭建一般的微信应用了。
文件下载http://files.cnblogs.com/logoove/bae_mysqli.zip
外篇
mysql数据库连接代码
<?php $dbname = "tIXZeAfkXSSgYzKuMwGZ";//百度bae数据库 /*从环境变量里取出数据库连接需要的参数*/ $host = getenv('HTTP_BAE_ENV_ADDR_SQL_IP'); $port = getenv('HTTP_BAE_ENV_ADDR_SQL_PORT'); $user = getenv('HTTP_BAE_ENV_AK'); $pwd = getenv('HTTP_BAE_ENV_SK'); /*接着调用mysql_connect()连接服务器*/ $link = @mysql_connect("{$host}:{$port}",$user,$pwd,true); if(!$link) { die("Connect Server Failed: " . mysql_error()); } /*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/ if(!mysql_select_db($dbname,$link)) { die("Select Database Failed: " . mysql_error($link)); } else{ echo 'ok'; } mysql_query("set names utf8");//设置编码utf8 ?>