上一節主要是一些准備知識,本課還是准備知識,開發微信也可以不使用數據庫,但是要想搭建一些查詢類應用,就可能使用到數據庫操作,所以本節主要涉及到百度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
?>
