2015-04-08 15 views
8

मेरी विंडोज 7 मशीन पर, PHP v5.6.7 और MySQL v5.6.23 के साथ, और PHPStorm 8 का उपयोग करके, मैं एक mysqli ऑब्जेक्ट को तुरंत चालू करने का प्रयास कर रहा हूं। जब मैं कोशिश, मैं मिलता है:कक्षा 'mysqli' नहीं मिला PHP v5.6.7

Fatal error: Class 'mysqli' not found in... 

मैं है भी इस परीक्षण चलाने के लिए, सुझाव दिया here:

if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) { 
     echo 'no mysqli :('; 
} else { 
     echo 'we gots it'; 
} 

उत्पादन होता है:

no mysqli :(

मैं here पढ़ा है कि इस समस्या को कभी-कभी जब यह एक नेमस्पेस के भीतर mysqli कक्षा की तलाश में होता है। मैं इसे ठीक करने के लिए अपने कोड बदल गया है, लेकिन समस्या बनी रहती है

$mysqli = new \mysqli($host, $userName, $password, $database); 

मैंने पढ़ा है कि इस समस्या को कभी कभी होता है जब mysqli विस्तार सक्षम नहीं है। हालांकि, मैं PHP संस्करण 5.6.7 का उपयोग कर रहा हूं, और mysqli एक्सटेंशन डिफ़ॉल्ट रूप से संस्करण 5.3 और नए (here के अनुसार) पर सक्षम है।

बस सुनिश्चित करने के लिए, मैं पुष्टि कर लें कि php.ini-development और php.ini-productionextension_dir = "C:/PHP/php-5.6.7/ext" है और सेमी-कोलन लाइनों से हटा दिया है:

extension=php_mysql.dll 
extension=php_mysqli.dll 

[अतिरिक्त जानकारी] मैं एक परीक्षण में पाया गया चलाने के लिए और के अनुसार करने के लिए phpinfo() यह एक विन्यास फाइल लोड नहीं है:

Configuration File (php.ini) Path C:\Windows 
Loaded Configuration File (none) 
Scan this dir for additional .ini files (none) 
Additional .ini files parsed (none) 

किसी कारण से, PHPStorm वेब सर्वर सही जगह में php.ini की तलाश में नहीं है?

--php-ini C:\PHP\php-5.6.7\php.ini 

मैं सत्यापित किया है कि यह सही मार्ग है:

मैं "दुभाषिया विकल्प" this प्रति में इस सेटिंग है।

+2

मुझे लगता है कि php.ini-development फ़ाइलें केवल टेम्पलेट्स हैं, आपको उस व्यक्ति की प्रतिलिपि बनाना चाहिए जिसे आप अपनी कॉन्फ़िगरेशन का आधार बनाना चाहते हैं और इसे यथासंभव उचित रखें जहां PHP वास्तविक फ़ाइल की तलाश करेगा; 'php.ini' –

+0

क्या आपने सिस्टम फ़ाइलों में कोई भी बदलाव करने के बाद सभी सेवाओं को पुनरारंभ किया है? इसके अलावा, क्या आपने स्लैश के बिना '$ mysqli = new mysqli ...' की कोशिश की है? –

+0

स्क्रोलर, सुझाव के लिए धन्यवाद। मैंने ऐसा किया है, लेकिन php.ini फ़ाइल को पार्स करने में त्रुटि हुई है। मैं अपने प्रश्न को संपादित करने से पहले कुछ और शोध कर रहा हूं। फ्रेड -ii-, मुझे विश्वास है कि PHP में चलने वाली प्रक्रिया नहीं है जिसे पुनरारंभ करने की आवश्यकता है। मेरा मानना ​​है कि PHPStorm स्वचालित रूप से रनों के बीच अपने आंतरिक वेबसर्वर को पुनरारंभ करता है। मैं सुनिश्चित करने के लिए COMP को रीबूट करने का प्रयास करूंगा। मैंने वास्तव में इसे बिना और बिना कोशिश की है। –

उत्तर

5

scrowler इस प्रविष्टि जांचें और माइकल बुश के ऊपर टिप्पणी में जवाब बताया। मैंने सोचा कि मैं थ्रेड देखने वाले किसी के लाभ के लिए इसका उत्तर दूंगा। धन्यवाद, स्क्रोलर और माइकल बुश।

php.ini-development और php.ini-production फ़ाइलें टेम्पलेट्स हैं। प्रभाव होने के लिए, उनमें से एक की प्रतिलिपि बनाने और php.ini का नाम बदलने की आवश्यकता है।

+0

यदि स्कॉयरर या माइकल बुश कल से पहले एक उत्तर पोस्ट करना चाहते हैं, तो मैं इसके बजाय "स्वीकार" करूंगा। –

5

क्या आप पर्यावरण पथ के लिए पीएचपी स्थापना निर्देशिका जोड़ा है

  • सही संपत्तियों पर
  • क्लिक प्रारंभ मेनू से अपने कंप्यूटर पर क्लिक करें
  • उन्नत सिस्टम सेटिंग्स को खोजने के वातावरण चरों पर
  • क्लिक
  • सिस्टम चर के तहत पाथ जोड़ें सी: \ php c: \ php को आपके PHP स्थापना निर्देशिका के साथ बदलना; *** पथ विभाजक

याद इसके अलावा अपने php.ini में

; Directory in which the loadable extensions (modules) reside. 
; http://php.net/extension-dir 
; extension_dir = "./" 
; On windows: 
extension_dir = "c:/php/ext" 
+0

हां, PHP स्थापना सिस्टम पथ पर है। –

+0

मेरा मानना ​​है कि आपको अपनी php.ini को संपादित करने और extension_dir = "ext" से extension_dir = "c:/php/ext" से एक्सटेंशन_dir को बदलने की आवश्यकता है या आपका पथ –

+2

क्या है, आप यह भी पुष्टि कर सकते हैं कि आपने कॉपी किया है और फिर PHP का नाम बदल दिया है .ini- विकास या php.ini-php.ini –

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