上一節主要是一些準備知識,本課仍是準備知識,開發微信也能夠不使用數據庫,可是要想搭建一些查詢類應用,就可能使用到數據庫操做,因此本節主要涉及到百度BAE上面的數據庫表的建立,插入數據,修改數據,刪除數據,刪除表,以及事務操做。javascript
開發前去bae建立應用,而後添加數據庫MySQL,就會自動生成一個數據庫名稱,是一串字符串。php
這裏使用mysqli,測試,MySQL差很少。java
$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相關數據庫方法去操做了。mysql
1.建立表sql
$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 ?>