2010-03-05 15 views
5

मैं निम्नलिखित अपवाद हो रही है जब मैं Zend_Db_Table_Abstract वर्ग के fetchall विधि का उपयोग करने की कोशिश लोड नहीं है ...पीडीओ विस्तार इस एडाप्टर के लिए आवश्यक है, लेकिन विस्तार

An error occurred4545 
EXCEPTION_OTHER 
Exception information: 
Message: The PDO extension is required for this adapter but the extension is not loaded 

Stack trace: 
#0 D:\www\TestProject\library\Zend\Db\Adapter\Pdo\Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect() 
#1 D:\www\TestProject\library\Zend\Db\Adapter\Abstract.php(448): Zend_Db_Adapter_Pdo_Mysql->_connect() 
#2 D:\www\TestProject\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('DESCRIBE `album...', Array) 
#3 D:\www\TestProject\library\Zend\Db\Adapter\Pdo\Mysql.php(156): Zend_Db_Adapter_Pdo_Abstract->query('DESCRIBE `album...') 
#4 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(823): Zend_Db_Adapter_Pdo_Mysql->describeTable('albums', NULL) 
#5 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(862): Zend_Db_Table_Abstract->_setupMetadata() 
#6 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(969): Zend_Db_Table_Abstract->_setupPrimaryKey() 
#7 D:\www\TestProject\library\Zend\Db\Table\Select.php(100): Zend_Db_Table_Abstract->info() 
#8 D:\www\TestProject\library\Zend\Db\Table\Select.php(78): Zend_Db_Table_Select->setTable(Object(Application_Model_Albums)) 
#9 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(1005): Zend_Db_Table_Select->__construct(Object(Application_Model_Albums)) 
#10 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(1303): Zend_Db_Table_Abstract->select() 
#11 D:\www\TestProject\application\controllers\IndexController.php(17): Zend_Db_Table_Abstract->fetchAll() 
#12 D:\www\TestProject\library\Zend\Controller\Action.php(513): IndexController->indexAction() 
#13 D:\www\TestProject\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('indexAction') 
#14 D:\www\TestProject\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#15 D:\www\TestProject\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch() 
#16 D:\www\TestProject\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() 
#17 D:\www\TestProject\public\index.php(26): Zend_Application->run() 
#18 {main} 
Request Parameters: 
array (
    'controller' => 'index', 
    'action' => 'index', 
    'module' => 'default', 
) 

मैं निम्नलिखित को शामिल किया है php.ini फ़ाइल

extension=pdo.so 
extension=pdo_mysql.so 

extension=php_pdo.dll 
extension=php_pdo_mssql.dll 

में लाइनों इसके अलावा मैं पीडीओ MySQL पैकेज अपने सिस्टम में स्थापित किया है। लेकिन फिर भी मैं ऊपर अपवाद हो रही है ....

+0

क्या आप 100% सुनिश्चित हैं कि आप सही php.ini फ़ाइल का उपयोग कर रहे हैं? सुनिश्चित करने के लिए 'phpinfo()' पर कॉल करें। –

+0

हां, php.ini फ़ाइल में किए गए अन्य परिवर्तन प्रतिबिंबित हो रहे हैं – neo

उत्तर

8

सबसे पहले (इसके अलावा अपाचे सर्वर को पुनः आरंभ), आप नहीं कर सकते हैं दोनों:

extension=pdo.so 
extension=pdo_mysql.so 

कौन सा लिनक्स के लिए कर रहे हैं, और:

extension=php_pdo.dll 
extension=php_pdo_mssql.dll 

जो विंडोज़ के लिए हैं: आप जिस सिस्टम का उपयोग कर रहे हैं उसके आधार पर आपको चुनना होगा।

जैसा कि आप विंडोज़ पर हैं, आपको .dll संस्करण का उपयोग करना चाहिए।


लेकिन ध्यान दें कि आप प्रयोग किया है:

extension=php_pdo_mssql.dll 

अर्थात आप pdo_mssql विस्तार भरी हुई है - जो Microsoft SQL सर्वर के लिए है, और नहीं MySQL।

इसके बजाय, आप MySQL के लिए विस्तार लोड होनी चाहिए:

extension=php_pdo_mysql.dll 

कि ठीक करने के बाद, अपाचे पुनः आरंभ; और चीजें बेहतर होनी चाहिए।


चीज़ें बेहतर नहीं मिलता है, तो आप phpinfo() के उत्पादन की जाँच करनी चाहिए: phpinfo() के उत्पादन की शुरुआत में

  • , यह इंगित करता है जो php.ini फ़ाइल भरी हुई है, सुनिश्चित करें कि आपने सही को संशोधित किया है।
  • चेक, फ़ाइल में कम है, अगर वहाँ के बारे में pdo_mysql
    • एक अनुभाग है यदि नहीं, अपाचे के error_log जाँच, अगर ;-)
+0

हाय, @ पास्कल मार्टिन मैंने उपरोक्त को सही किया है और अब मुझे त्रुटि मिल रही है कि MySQL ड्राइवर वर्तमान में स्थापित नहीं है। लेकिन मैं सीधे PHP से MySQL से कनेक्ट करने में सक्षम हूं .. क्या हमें ज़ेंड के लिए किसी विशेष ड्राइवर की आवश्यकता है? – neo

+0

यह एक डीएल मुद्दा था, मैंने इसे हल किया है .. Thnks। – neo

+0

आपका स्वागत है :-) खुशी है कि आपने समस्या हल की है! –

0

Mabe पीडीओ से करने के लिए समर्थित swich में Mysqli मदद करता है, वे ZF में swichable हैं (मैंने ऐसा किया)।

0

आज मैंने अपने परीक्षण सर्वर से क्लाइंट सर्वर पर एक वेबसाइट ले ली है और इस तरह की त्रुटि प्राप्त कर रही है कि इस एडाप्टर के लिए पीडीओ एक्सटेंशन की आवश्यकता है लेकिन एक्सटेंशन लोड नहीं हुआ है। मैं सोच रहा था कि pdo.so php एक्सटेंशन होना चाहिए जो सर्वर पर स्थापित नहीं है। समस्या को पहचानने के बाद, मैं विस्तार की जांच करने के लिए php.ini फ़ाइल की तलाश में था लेकिन साझा होस्टिंग के कारण उन्होंने मुझे आईएनआई फ़ाइल प्रदान नहीं की थी।

यहाँ इस पोस्ट में मैं कैसे समस्या यह बहुत आसान है इस तरह हल करने के लिए वर्णन करने के लिए कोशिश कर रहा हूँ और आप नीचे दिए चरण का उपयोग करके समस्या का समाधान कर सकते हैं: आप और अधिक के बारे में जानना चाहते हैं

आप php.ini फ़ाइल की पहुँच है, तो http://php.net/manual/en/ref.pdo-mysql.php

पर पीडीओ देखो तो जाँच

;extension=pdo_mysql.so 

बस तुम इतनी सक्रिय करने के लिए इसे पसंद के रूप में

लग रहा है लाइन uncomment करने की जरूरत है 10
extension=pdo_mysql.so 

फ़ाइल को सहेजें और सर्वर को पुनरारंभ करें।

आप php.ini फ़ाइल का कोई उपयोग कर सकते है, तो निम्न चरणों

चरण 1. का पालन करें अपने Magento स्थापना निर्देशिका की जांच करें वहाँ मुझे php.ini.sample के रूप में नाम की एक फ़ाइल चाहिए।

चरण 2. अब php.ini.sample से फ़ाइल php.ini को नाम बदलने

चरण 3. इसे में

extension = pdo.so 
extension = pdo_sqlite.so 
extension = sqlite.so 
extension = pdo_mysql.so 

चरण 4. नीचे कोड रखो अब अपने ब्राउज़र का कैश ताज़ा और समस्या सुलझा ली गई है।

-1

यदि आपका गोडाडी होस्टिंग खाता है और आप सर्वर की मुख्य कॉन्फ़िगरेशन फ़ाइलों के प्रतिबंध के कारण कुछ भी नहीं कर सकते हैं और आप अपाचे को पुनरारंभ नहीं कर सकते हैं। आप "पीएचपी संस्करण का चयन करें" से PHP संस्करण को बदलकर इस समस्या को बाईपास कर सकते हैं इस तरह आप सेटिंग्स को पुनरारंभ करेंगे। मेरे मामले में मैंने php.in.ini से php.ini को संपादित करने का प्रयास किया .user.ini फ़ाइल भी जोड़ा और इसके परिणामस्वरूप मुझे यह त्रुटि मिली: इस एडाप्टर के लिए पीडीओ एक्सटेंशन की आवश्यकता है लेकिन एक्सटेंशन लोड नहीं किया गया है अब मेरी समस्या है हल हो गया है, यह समाधान अन्य होस्टिंग पर काम नहीं कर सकता है न केवल अगर आप सिस्टम प्रशासक नहीं हैं !!!

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