it-swarm-pt.tech

Chame a função indefinida mysql_connect

Acabei de instalar o PHP e o Apache no meu PC em casa. Quando tento chamar a função mysql_connect Eu recebo:

fatal error: call to undefined function mysql_connect.

Carreguei o php.ini onde tenho linhas não comentadas extension=php_mysql.dll e extension=php_mysqli.dll e alterou o diretório de extensão para extension_dir = "C:\php\ext" - que é o diretório em que estão os arquivos php_mysql.dll e php_mysqli.dll. Como posso resolver este problema?

Saída de phpinfo (): http://jsfiddle.net/MMTwA/

21
Nikolas Jíša

Depois de examinar sua saída phpinfo(), parece que as extensões do mysql não estão sendo carregadas. Eu suspeito que você possa estar editando o arquivo php.ini errado (pode haver várias cópias). Certifique-se de editar o arquivo php em C:\php\php.ini (verifique também se não há uma segunda cópia em C:\Janelas).

Além disso, você deve verificar se há erros nos logs do Apache (deve estar no diretório\logs\na instalação do Apache.

Se você não leu o texto abaixo, eu daria uma olhada na seção de comentários, porque parece que muitas pessoas experimentam peculiaridades ao configurá-lo. Alguns comentaristas oferecem soluções usadas para fazê-lo funcionar.

http://php.net/manual/en/install.windows.extensions.php

Outra solução comum parece ser copiar o libmysql.dll e o php_mysql.dll de c:\PHP para C:\Windows\System32.

15
Bryan

Antecedentes sobre o meu problema (semelhante):

Me pediram para corrigir um projeto PHP, que fazia uso de tags curtas. O PHP.ini do meu servidor WAMP tinha short_open_tag = off. Para executar o projeto pela primeira vez, modifiquei essa configuração para short_open_tag = off.

PROBLEMA Surgiu: Imediatamente após essa alteração, todas as minhas chamadas mysql_connect () falharam. Gerou um erro

erro fatal: chame a função indefinida mysql_connect.

Solução: basta definir short_open_tag = off.

4
Drigs

Meu PC está executando o Windows 7 (Apache 2.2 & PHP 5.2.17 & MySQL 5.0.51a), a sintaxe no arquivo "httpd.conf" (C:\Arquivos de Programas (x86)\O Apache Software Foundation\Apache2.2\conf\httpd.conf) foi sensível a barras. Você pode verificar se "php.ini" é lido no diretório certo. Basta digitar no navegador "localhost/index.php". de index.php é o seguinte:

<?php echo phpinfo(); ?>

Existe a linha (não muito longe do topo) chamada "Arquivo de configuração carregado". Portanto, se não houver nada adicionado, o problema pode ser que o seu "php.ini" não seja lido, mesmo que você não seja comentado (extension = php_mysql.dll e extension = php_mysqli.dll). Então, para fazê-lo funcionar, executei o seguinte passo. Eu precisava mudar de

PHPIniDir 'c:\PHP\'

para

PHPIniDir 'c:\PHP'

Preste atenção que a última barra perturbou tudo!

Agora a linha "Loaded Configuration File" obtém "C:\PHP\php.ini" após atualizar o "localhost/index.php" (antes de reiniciar o Apache2.2), assim como o bloco mysql. MySQL e PHP estão trabalhando juntos!

3
Darius Miliauskas

Verifique seu php.ini, estou usando o Apache2.2 + php 5.3. e eu tive o mesmo problema e depois de modificar o php.ini para definir o diretório de bibliotecas do PHP, ele funcionou corretamente. O problema é o padrão extension_dir valor de configuração.

O valor padrão (e ERRADO) para o meu ambiente de trabalho é

; extension_dir="ext"

sem nenhum caminho completo e comentou com um ponto e vírgula.

Existem duas soluções que funcionaram bem para mim.

1.- Incluindo esta linha no arquivo php.ini

extension_dir="X:/[PathToYourPHPDirectory]/ext

Onde X: é a instalação da letra da unidade (normalmente C: ou D:)

2.- Você pode tentar simplesmente descomentar, excluindo ponto e vírgula. Inclua a próxima linha no arquivo php.ini

extension_dir="ext"

Ambas as formas funcionaram bem para mim, mas escolha a sua. Não se esqueça de reiniciar o Apache antes de tentar novamente.

Espero que isso lhe ajude.

2
jagumon

Você provavelmente esqueceu de reiniciar o Apache/wamp/xamp/qualquer servidor web que você usa, você precisa fazer isso para fazê-lo funcionar

2
Martin.

Olá, recebi esse erro porque deixei de fora o e comercial (&) em

; php.ini
error_reporting = E_ALL & ~E_DEPRECATED
1
zzapper

Certifique-se de editar o php.ini na pasta/php, perdi o dia todo para detectar erros e, finalmente, descobri que editei o php.ini no local errado.

1
nobjta_9x_tq

Esse mesmo problema me deixou maluco (Windows 10, Apache 2.4, MySql 5.7). Por alguma razão (provavelmente relacionada ao PATH), as DLLs não carregariam após descomentar as DLLs de extensão correta e extension_dir = "ext" no php.ini. Depois de tentar várias coisas, simplesmente mudei "ext" para usar o caminho completo do diretório. Por exemplo. extension_dir = "c:/phpinstall/ext" e funcionou.

0
mark

Desde mysql_connect Esta extensão foi descontinuada em PHP 5.5.0, e foi removida em PHP 7.0.0. Em vez disso, a extensão MySQLi ou PDO_MySQL deve ser usada por padrão, o xampp não o carrega automaticamente

no seu arquivo php.ini, você deve descomentar

;; extension=php_mysql.dll

para

extension=php_mysql.dll

Em seguida, reinicie o seu Apache, você deve ficar bem

0
Pascal

Após alterar o php.ini, reinicie o servidor Apache.

0
user2618844

Uma vez, tive um problema ao usar Off em vez de off. E também verifique as almofadas mais uma vez ... O caminho deve ser exato. Adicione também a seguinte linha à sua variável ambiental.

C:\your-Apache-path\bin; C:\your-php-path\bin;C:\your-mysql-path\bin

Se você estiver no Windows, clique com o botão direito do mouse em Meu Computador, selecione propriedades e navegue até a guia Avançado ... (é o Windows 7). Clique em Configurações avançadas do sistema primeiro, selecione a guia Avançado e depois Variáveis ​​ambientais. Selecione PATH e clique em Editar. Faça uma cópia da string em um arquivo .txt para backup (pode estar vazio) --- defina suas variáveis ​​ambientais ... Faça logoff e logon novamente.

0
Pepe Yáñez

Apenas para referência futura, copiar todos esses arquivos de extensão para Windows/System ou Windows/System32 é desnecessário.

Tudo o que é necessário é uma cópia do arquivo php.ini que você edita no diretório PHP dir para copiar para o diretório raiz do Windows.

o phpinfo explicará claramente o abaixo: Arquivo de configuração (php.ini) Caminho C:\Windows

O senso lógico explicará que o php deseja carregar uma configuração localizada no diretório do Windows. :-)

0
WolF-X