2011-01-30 10 views
6

मैं ज़ेंड_फ्रेमवर्क के बिना Zend_Db का उपयोग करना चाहता हूं। मैं अपनी मौजूदा वेबसाइट के लिए Zend_Db को शामिल करना चाहता हूं जो ज़ेंड फ्रेमवर्क का उपयोग नहीं किया गया था। क्या इस तरह Zend_Db का उपयोग करना संभव है? क्या आप अच्छे ट्यूटोरियल या उदाहरण की सिफारिश कर सकते हैं कि यह कैसे अच्छा है?Zend_Db बिना ज़ेन फ्रेमवर्क

उत्तर

10

कुछ हद तक, यह आपके द्वारा उपयोग किए जा रहे वेब ढांचे पर निर्भर करता है। लेकिन, सामान्य रूप से, Zend_Db documentation इस संबंध में बहुत स्पष्ट है।

अपने बूटस्ट्रैप में एडाप्टर उदाहरण बनाएं। एक उदाहरण के रूप:

$db = Zend_Db::factory('Pdo_Mysql', array(
    'host'  => '127.0.0.1', 
    'username' => 'webuser', 
    'password' => 'xxxxxxxx', 
    'dbname' => 'test' 
)); 

आप Zend_Db_Table उपयोग करने की योजना है, तो आप इस डिफ़ॉल्ट एडाप्टर बना सकते हैं:

Zend_Db_Table::setDefaultAdapter($db); 

किसी भी मामले में, यह इस अनुकूलक बचाया किसी ऐसे स्थान पर जहां आप उपयोग कर सकते हैं के लिए उपयोगी है यह। उदाहरण के लिए:

Zend_Registry::set('db', $db); 

फिर अपने बहाव के कोड में, इस अनुकूलक select() के लिए क्वेरी बनाने के लिए, का उपयोग insert(), update(), delete(), आदि:

$db = Zend_Registry::get('db'); 
$select = $db->select() 
    ->from('posts') 
    ->where('cat_id = ?', $catId) 
    ->order('date_posted DESC') 
    ->limit(5); 
$rows = $db->fetchAll($select); 

आशा इस मदद करता है। चीयर्स!

+0

अच्छा व्यापक उत्तर ... –

+0

धन्यवाद। मैं कोशिश करूँगा। – user594791

0

जेडडीबीबी का उपयोग कच्चे पीडीओ का उपयोग करने पर भी बेहतर (आईएमएचओ) होगा। बस $ db ऑब्जेक्ट बनाएं और फिर Zend_Db_Select क्लास का उपयोग करके SQL स्टेटमेंट बनाएं और $ (SQL fetow, fetchAll ...) विधियों के लिए $ SQL का चयन करें।

1

लिए Zend फ्रेमवर्क 2. *, अनुकूलक बनाने होगा:

$db = new \Zend\Db\Adapter\Adapter([ 
    'driver' => 'Pdo_Mysql', 
    'host' => '127.0.0.1', 
    'username' => 'webuser', 
    'password' => 'xxxxxx', 
    'database' => 'test', 
]); 

चयन बनाने के लिए:

$sql = new \Zend\Db\Sql\Sql($db); 
$select = $sql->select() 
    ->from('posts') 
    ->where(array('cat_id' => $catId)) 
    ->order('date_posted DESC') 
    ->limit(5); 
$statement = $sql->prepareStatementForSqlObject($select); 
$results = $statement->execute(); 

या, आप $ से शुद्ध एसक्यूएल पाने के लिए चयन चाहते हैं:

$selectSql = $sql->getSqlStringForSqlObject($select); 

Docs सहायक हो सकता है। TableGateway का उपयोग किया जाता है तो यह भी आसान हो सकता है।

संबंधित मुद्दे