Estou fazendo um tutorial e estou recebendo este erro:
Erro fatal: Classe 'MySQLi' não encontrada (LONG URL) na linha 8
O código na linha 8 é:
$mysqli = new MySQLi($db_server, $db_user, $db_pass, $db_name);
Eu vi online que alguém disse para ver se ele estava ligado no meu phpinfo (), mas não havia nada listado lá em "mysqli".
Além disso, estou executando o PHP versão 5.2.5
Respostas:
Parece que você só precisa instalar o MySQLi .
Se você acha que fez isso e ainda tem um problema, poste seu sistema operacional e qualquer outra coisa que possa ajudar a diagnosticar melhor.
fonte
sudo yum install php-mysqli
sudo yum install php56-mysqlnd.x86_64
(escolha aquele que corresponde a qual versão do php você instalou)Você pode verificar se as bibliotecas mysqli estão presentes executando este código:
fonte
Se você estiver no Ubuntu , execute:
fonte
sudo
apt-get -y install php5-mysql php5-mysqlnd
para obter ambos. É o que estava faltando, @Hermann Ingjaldsson?Se você estiver chamando "new mysqli (..)" de dentro de uma classe com namespace, poderá ver um erro semelhante
Fatal error: Class 'foo\bar\mysqli' not found in
. A maneira de corrigir isso é defini-lo explicitamente como o namespace raiz com uma barra invertida anterior, como:fonte
Além de descomentar a extensão php_mysqli.dll em php.ini , também descomente a diretiva extension_dir em php.ini e especifique sua localização:
Isso fez funcionar para mim.
fonte
./ext
qual é o caminho relativo. E eu tive que renomearphp.ini-development
paraphp.ini
e descomentar nesse arquivoextension=php_mysqli.dll
. Puxa, não senti sua falta PHP.Meu sistema operacional é o Ubuntu . Resolvi esse problema usando:
fonte
Como ativar o mysqli no php.ini
Como carregar o arquivo php.ini
fonte
Se você estiver no Docker ...
Dentro do php-container RUN:
fonte
Parece um problema com sua instalação.
http://www.php.net/manual/en/mysqli.installation.php
fonte
Achei que poderia ajudar alguém com o mesmo problema usando servidores Namesco. Tenho tentado corrigir esse problema depois de mover um banco de dados do meu servidor local no pc doméstico para o namesco. Eles não quiseram ajudar, pois disseram que era um problema de codificação.
Infelizmente, seus artigos de suporte foram uma perda de tempo. Depois de ler isso, fui para a interface administrativa com uma nova determinação.
fonte
Algumas distribuições (como o Gentoo ) suportam múltiplas instalações de PHP, e você deve ter certeza de que está usando uma com mysqli instalado e habilitado.
No Gentoo, instalei um novo PHP (com o sinalizador mysqli USE habilitado), mas precisei ativar a nova versão do PHP (já que o antigo deve ter o mysqli ausente):
fonte
Eu verifiquei tudo acima e não funcionou para mim,
Existem alguns passos que encontrei.
Usei o PHP versão 5.5.9-1ubuntu4.17 no Ubuntu 14.04
Primeiro verifique a pasta
Se não contiver mysqli.ini , leia outra resposta para instalá-lo,
Abra
php.ini
localizar extension_dirNo meu caso, devo definir
extension_dir = /usr/lib/php5/20121212
E reinicie o apache2:
/ect/init.d/apache2 restart
fonte
O zip do PHP inclui a maioria das extensões comumente usadas (* .dll no Windows, como php_mysqli.dll) no diretório \ ext, no entanto, elas não são habilitadas por padrão. Você pode receber este erro fatal ao tentar usar o MySQLi:
Para habilitar as extensões, abra php.ini (você pode precisar primeiro copiar php.ini-development como php.ini) e descomente (ou adicione) estas duas linhas:
E quaisquer extensões específicas para as quais você está recebendo Erros Fatais, ou seja, para mysqli:
fonte
no ubuntu:
fonte
Em uma nova instalação do PHP, remova
;
antesextension_dir
no php.ini.fonte
no Debian 10
fonte
Para qualquer pessoa que use o docker, encontrei esse problema e resolvi-o usando meu próprio Dockerfile em vez da imagem php: fpm:
fonte
Eu encontrei uma solução para este problema após um longo procedimento de análise. Depois de testar adequadamente minha instalação do php com os recursos de linha de comando, descobri que o php está funcionando bem e poderia funcionar com o banco de dados mysql. Btw. você pode executar arquivos de código com código php com o comando php -f filename.php
Então eu percebi que deve haver algo errado com o Apache.
Fiz um arquivo com apenas a função phpinfo () dentro.
Aqui eu vi, que na linha
Arquivo de Configuração Carregado
meu arquivo de configuração não foi carregado, ao invés disso foi mencionado (nenhum).
Finalmente encontrei na configuração do Apache a entrada
Mas eu instalei o PHP 7 e o Apache não conseguiu carregar o arquivo php.ini porque não havia entrada para isso. Eu adicionei
e após reiniciar o Apache tudo funciona bem.
Esses blocos de código acima eu encontrei em meu arquivo httpd-xampp.conf. Pode estar em outro lugar em sua configuração.
No mesmo arquivo eu havia alterado antes as configurações do php 7 em substituição à versão 5 do php.
Como você pode ver, tenho o pacote xampp instalado, mas esse problema estava apenas no lado do Apache.
fonte
instale a extensão phpXX pelo PHP. No caso do meu FreeBSD:
fonte
Estou usando o xampp e meu problema foi corrigido depois de renomear:
para
PS: Não se esqueça de reiniciar o apache após fazer esta alteração!
fonte
fonte