symfony2 資料庫操作

2021-09-26 05:47:24 字數 1788 閱讀 8931

預定義文中用到的變數:

$em = $this->getdoctrine()->getentitymanager();

$repository = $em->getrepository(『acmestorebundle:product』);

1.常用的查詢

$repository->find($id); //獲取的是一條資料

$repository->findall();  //獲取的是陣列

$repository->findonebyname(『foo』);//獲取的是一條資料

$repository->findby(array(『name』 => 『foo』,『price』 => 19.99),array(『price』 => 『asc』));//獲取的是乙個陣列

2、dql

例題1.

$query = $em->createquery(

『select p from acmestorebundle:product p where p.price > :price order by p.price asc』

)->setparameter(『price』, 』19.99′);

$products = $query->getresult();

注:(1) 獲得乙個結果可以用:$product = $query->getsingleresult();

(2) setparameter(『price』, 』19.99′);運用這個外部方法來設定查詢語句中的 「佔位符」price 的值,而不是直接將數值寫入查詢語句中,有利於防止sql注入攻擊,你也可以設定多個引數:

->setparameters(array(

『price』 => 』19.99′,

『name』 => 『foo』,

))例題2:

例題4、

if ($status == inventoryorder::status_submitted) else if ($status == inventoryorder::status_unsubmitted) else if (empty($status)) else

if ($starttimestamp > $endtimestamp)

$sql .= $index;

$sql .= ' between :startdate and :enddate ';

$start = date('y-m-d 00:00:00', $starttimestamp);

$end = date('y-m-d 23:59:59', $endtimestamp);

$params['enddate'] = $end;

$params['startdate'] = $start;

if (!empty($status))

$sql .=' order by i.createtime desc';

$query = $this->entitymanager->createquery($sql);

$orderlist = $query->setparameters($params)->getresult();

3.query builder查詢

例題1、

$query = $repository->createquerybuilder(『p』) ->where(『p.price > :price』) ->setparameter(『price』, 』19.99′) ->orderby(『p.price』, 『asc』) ->getquery();

$products = $query->getresult();

Symfony2函式使用

1.呼叫其他物件的方法。例 grobal func this container get global func global func 函式所在的檔名 lot data global func getdatafromfile parm1 getdatafromfile函式名 2.資料庫的預備查詢 ...

symfony2 學習筆記

1 建立entities 儲存的 string 型別 使用 datetime控制項編輯 transformer string to date builder add starttime datetime builder get starttime addmodeltransformer new ca...

安裝symfony2 如此簡單!

2 安裝composer時選擇php.exe的路徑,我用的是xampp,所以路徑為c xampp php。安裝好cmd下執行composer 看看是否成功了 3 在頁面上有composer安裝symfony的命令列,拷貝下來 我安裝的是2.3 命令為 composer create project ...