zend framework操作mysql數據庫

set_include_path('D:\apache\htdocs\zend\\');//zend 路徑

require_once 'zend/db.php';
//數據庫參數配置
$params = array(
'host'=>'127.0.0.1',
'username'=>'root',
'password'=>'root',
'dbname'=>'test1'
);
$db = Zend_Db::factory('pdo_mysql',$params);
//if($db){
// echo 'ok';
//}

//=========================================================================================================
$tbl = 'tbl1';
$select = $db->select();
$select->from('tbl1','*');
$where = $db->quoteInto("age<(?)",30);
$select->where($where);
$select->where($db->quoteInto('age in (?)',array('23','25')));
$rows = $db->fetchAll($select);
foreach ($rows as $key=>$val){
echo 'name:'.$rows[$key][name].'&nbsp;&nbsp;&nbsp;age:'.$rows[$key][age];
echo '<br />';
}
$value = $db->quote('my name is "tom"');
echo $value;
$value = $db->quote(array('a','b','c'));
require 'zend/debug.php';
zend_debug::dump($rows,'zend_dubut::dump : <br />',1);
//echo $where;
$sql = $db->query('select * from tbl1 where age>(?)','30');
$rows = $sql->fetchall();
zend_debug::dump($rows);

//使用佔位符

$sql = $db->query('select * from tbl1 where age>:zw and age<:zw2 ',array('zw'=>23,'zw2'=>40));
$rows = $sql->fetchall();
zend_debug::dump($rows);

//pdostatement 方法

$stm = $db->prepare('select * from tbl1 where age>:zw');
$stm->bindvalue('zw','23');
$stm->execute();
$rows = $stm->fetchall();
zend_debug::dump($rows);

echo "<hr />";
//事務處理
$db->beginTransaction();// 嘗試數據庫操作.// 假如成功,commit該操作;// 假如,

try {
$db->query("select * from tbl1 where age>234");
$db->commit();
}
catch (Exception $e) {
$db->rollBack();
echo $e->getMessage();
}

//插入數據
$rand = rand(59,100);
$rows = array('name'=>'liming','age'=>$rand);
$tblname = 'tbl1';
$db->insert($tblname,$rows);
$lastinsertid = $db->lastInsertId();
if ($db)
echo $lastinsertid;
echo "<hr />";

//更新數據
$tblname ='tbl1';
$set = array('age'=>222);
$where = $db->quoteInto('name=?','liming');
$db->update($tblname,$set,$where);

//刪除數據
$where = $db->quoteInto('name=?','liming');
$db->delete($tblname,$where);

//幾種不同取得結果方法
$sql = $db->quoteInto('select * from tbl1 where age>?',23);
$rows = $db->fetchAll($sql);
zend_debug::dump($rows,'fecthall方法(取回所有結果集以連續數組顯示):',1);//取回所有結果集以連續數組顯示
$rows = $db->fetchAssoc($sql);
zend_debug::dump($rows,'fetchassoc方法(取回所有結果集以關聯數組顯示):',1);
$rows = $db->fetchCol($sql);//取回所有0
zend_debug::dump($rows,'fetchcol方法(取回所有結果行的第一個字段值):',1);
$rows = $db->fetchOne($sql);
zend_debug::dump($rows,'fetchone方法(只取回第一個字段值):',1);
$rows = $db->fetchRow($sql);
zend_debug::dump($rows,'fetchrow方法(取回結果集第一行)',1);
$rows = $db->fetchPairs($sql);
zend_debug::dump($rows,'fetchpairs方法(取回一對結果集 第一個一)');

//================================================================================================================
//select_db方法

$select = $db->select();
$tblname = 'tbl1';
$select->from($tblname,'*')
->where('age>?',20)
//       ->where('name=?','csad')
->order('age desc')
->limit(10,0);
$rows = $db->fetchAll($select);
//也可以試用——tostring方法
$sql = $select->__tostring($select);
echo $sql;
$rows = $db->fetchAll($sql);
zend_debug::dump($rows,'select_db方法(__tostring()):',1);


//fetchall讀取結果使用綁定的參數

$select = $db->select();
$select->from($tblname,'*')
       ->where('age>:zw')
       ->order('age asc');
$params = array('zw'=>'20');
$rows = $db->fetchAll($select,$params);
zend_debug::dump($rows,'select_db方法(參數綁定):',1);

//查詢多列數據(不同字段,可加別名)

$select = $db->select();
$select->from('tbl1 as t',array('t.name as n','t.age as a'));
echo $select;
$rows = $db->fetchAll($select);
zend_debug::dump($rows,'查詢不同字段下數據<br />',1);


//查詢多列數據(不同字段,可加別名)
$select = $db->select();
$select->from('tbl1',array("name","age"))
       ->where('age=?','25')
       ->orwhere("age in (?)",array('34','25'))//or
       ->order('age desc')
       ->limit(0,2);
echo $select;
$rows = $db->fetchAll($select);
zend_debug::dump($rows,'查詢不同字段下數據<br />',1);

//多表聯合查詢
$select = $db->select();
$select->from('tbl1','*')
       ->where('tbl1.age>=?','23')
       ->join('tbl2','tbl1.age=tbl2.age','*');
       echo $select;
$rows = $db->fetchAll($select);
zend_debug::dump($rows,'多表聯合查詢(JOIN):<br />'.$select.'<br />',1);

//group 分組查詢
$select = $db->select();
$select->from('tbl1','*,count(id)')
       ->group('name')
       ->having("age>=25");
$rows = $db->fetchAll($select);
zend_debug::dump($rows,'<br />group分組查詢:'.$select,1);

//order by 排序
$select = $db->select();
$select->from('tbl1','*')
        ->order('id asc,age');
//       ->order(array('age desc','id'));
$rows = $db->fetchAll($select);
zend_debug::dump($rows,'order by 排序查詢(首先按ID降序後按age升序):',1);

//偏移量查詢
$select = $db->select();
$select ->from ('tbl1','*')
        ->limit(10,20);//10爲每頁數據量 20爲從第幾條開始查
$rows = $db->fetchAll($select);
zend_debug::dump($rows,'limit偏移量查詢:'.$select,1);

//按頁數查詢
$select = $db->select();
$select->from('tbl1')
       ->limitpage(2,10);//
$rows = $db->fetchAll($select);
zend_debug::dump($rows,'limitpage按頁數查詢:'.$select,1);
?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章