php-cgi mostra os módulos do mysql mas lança o erro “Call to undefined function mysql_connect ()”

1

Eu compilei o PHP 5.3.6 da fonte no Mac OS X 10.6 usando a opção --with-mysqli = mysqlnd. A saída do php -m e do php-cgi -m mostra os módulos mysqli e mysqlnd. Quando eu executo um arquivo PHP de teste simples contendo um mysql_connect (...) usando o binário php regular, ele se conecta bem. Quando eu uso o mesmo arquivo PHP de teste com o php-cgi, recebo:

PHP Fatal error: Call to undefined function mysql_connect() in /Users/chris/test2.php on line 2

Confirmei que as informações do soquete do MySQL estão corretas no php.ini e assegurei-me de que o php-cgi esteja usando esse arquivo usando o argumento -c. O MySQL funciona bem usando a interface de linha de comando regular do mysql e obviamente está trabalhando com PHP regular. phpinfo () do php-cgi mostra versões corretas do mysqli & bibliotecas mysqlnd.

Eu preciso rodar o PHP em uma configuração CGI neste ambiente em particular, então eu realmente preciso que o php-cgi funcione. Eu não estou preocupado com o Apache2 / nginx / etc neste momento - apenas fazendo com que o CGI funcione. Algum conselho sobre o que eu sinto falta?

    
por Chris Hart 19.06.2011 / 04:35

2 respostas

1

Você compilou o PHP com suporte à extensão mysqli (funções mysqli_ *) ... mas o erro mostra claramente que você está usando mysql_connect() function (sem "i", que pertence a < extensão strong> mysql ). Estas são duas extensões diferentes: mysqli significa "MySQL Improved" e é preferível usar over% e% rico em recursos mysql .

Você tem duas opções:

1) Atualize seu código para usar mysqli_* functions

2) Compile seu PHP novamente com mysql extension support (não esqueça de habilitá-lo mais tarde no php.ini)

P.S. Em qualquer caso, eu recomendaria usar o PDO para suas necessidades de banco de dados (se você puder, é claro).

    
por 19.06.2011 / 11:15
0

talvez você possa tentar isso:

No arquivo php.ini foi descomentado extensão mysql.so? ou experimente este postar

Espero que isso resolva seu problema.

    
por 19.06.2011 / 05:21