Sulla mia macchina Windows 7, con PHP v5.6.7 e MySQL v5.6.23, e usando PHPStorm 8, sto tentando di creare un'istanza di un oggetto mysqli. Quando provo, ottengo:Classe 'mysqli' non trovata PHP v5.6.7
Fatal error: Class 'mysqli' not found in...
ho anche eseguito questo test, suggerito here:
if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
echo 'no mysqli :(';
} else {
echo 'we gots it';
}
l'output è:
no mysqli :(
ho letto here che questo problema è a volte causato quando cerca la classe mysqli all'interno di un namespace. Ho cambiato il mio codice per correggere questo, ma il problema persiste
$mysqli = new \mysqli($host, $userName, $password, $database);
ho letto che questo problema a volte è causato quando l'estensione mysqli non è abilitato. Tuttavia, sto usando la versione 5.6.7 di PHP, e l'estensione mysqli è abilitata di default sulle versioni 5.3 e successive (secondo here).
Giusto per essere sicuri, Ho verificato che php.ini-development
e php.ini-production
hanno extension_dir = "C:/PHP/php-5.6.7/ext"
e hanno il punto e virgola rimossi dalle linee:
extension=php_mysql.dll
extension=php_mysqli.dll
[Ulteriori informazioni] ho trovato un test per correre e secondo phpinfo() non sta caricando un file di configurazione:
Configuration File (php.ini) Path C:\Windows
Loaded Configuration File (none)
Scan this dir for additional .ini files (none)
Additional .ini files parsed (none)
per qualche ragione, il server web PhpStorm non è alla ricerca di php.ini nel posto giusto?
ho questa impostazione nelle "opzioni Interprete" per this:
--php-ini C:\PHP\php-5.6.7\php.ini
Ho verificato che questo è il percorso corretto.
Penso che i file di sviluppo php.ini siano solo modelli, dovresti copiare quello su cui vuoi basare la tua configurazione e posizionarlo come appropriato per dove PHP cercherà il file vero e proprio; 'php.ini' –
Hai riavviato tutti i servizi dopo aver apportato modifiche ai file di sistema? Inoltre, hai provato '$ mysqli = new mysqli ...' senza la barra? –
scrowler, grazie per il suggerimento. L'ho fatto, ma sembra esserci un errore nell'analisi del file php.ini. Sto facendo qualche altra ricerca prima di modificare la mia domanda. Fred -ii-, credo che PHP non abbia un processo in esecuzione che deve essere riavviato. Credo che PHPStorm riavvierà automaticamente il suo server web interno tra le esecuzioni. Proverò a riavviare il comp per essere sicuro. L'ho provato con e senza il \. –