Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cristiano A. Franco

Erro estranho no novo MySQL / PHP

Recommended Posts

Executei o script seguinte:

 

<?if (isset($_POST['btnEnviar']) and $_POST['btnEnviar'] == "Enviar") {        $_bd_host = "localhost"; // Host, geralmente é localhost	$_bd_user = "bdxxx"; // Nome do usuário do banco de dados	$_bd_pass = "00024678"; // Senha do usuário para acessar o banco de dados	$_bd_nome = "xxx";		$_data_atual = date("ymd");		$_hora_atual = time("H");		// Conexão com o servidor MySQL	$_conexao = mysql_connect($_bd_host, $_bd_user, $_bd_pass) or die ("não foi possível se conectar a base de dados");	// Tentará criar o database caso não exista	mysql_query("CREATEE DATABASE IS NOT EXIST ".$_bd_nome);		// conectando a base de dados criada anteriormente	mysql_select_db($_bd_nome, $_conexao);		$_inserir = mysql_query("insert into mensagens (titulo, texto, creditos, data, hora) values (".$_POST['txtTitulo'].", ".$_POST['txtMensagem'].", ".$_POST['txtAutor'].", ".$_data_atual.", ".$_hora_atual.")") or die ("falha ao tentar gravar os dados - comando INSERT");echo "$_inserir"; }?>

e apareceu este erro:

Warning: mysql_connect() [function.mysql-connect]: Cliente não suporta o protocolo de autenticação exigido pelo servidor; considere a atualização do cliente MySQL in C:\Paginas\biblia\TMP3sjz8121io.php on line 15

Estou usando PHP 5 com mysql 5 alpha.

 

rodei o phpinfo(); e tudo funcionou beleza.

 

Alguem sabe q erro é esse?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha gente eu já rodei a documentação da zend inteira e mais a documentação do php, em inglês, e nada... por exemplo a linha abaixo:

 

 

To install the mysqli extension for PHP, use the --with-mysqli=mysql_config_path/mysql_config configuration option where mysql_config_path represents the location of the mysql_config program that comes with MySQL versions greater than 4.1.

 

Ele manda você entrar no prompt do dos e digitar:

 

c:\php>php --with-mysqli=mysql_config_path/mysql_config

Isto compilaria úm módulo para o php enxergar a extensão mysqli, já q ela é otimizada para quem usa banco de dados de versão mais atual do q a 4.1 (meu caso q baixei a 5 alpha)

 

Onde mysql_config_path/mysql_config é o diretório de configuração do programa.... mas q diretório é esse, é no c:/php ou no c:/mysql?

 

O q eu devo colocar exatamente depois do sinal de igaulada:

 

c:/php --with-mysqli= ???

 

Tenta aí gente q já passei o dia todo hj correndo atraz... :wacko:

 

http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer funcionar

 

no php.ini mudar de ---> para:

 

extension=php_mysql.dll ---> extension=php_mysqli.dll

 

Copiar a biblioteca libmysqli.dll para o diretório do windows (C:\windows)

 

 

script de exemplo q fiz e q funcionou:

 

<?printf ("MySQL client info: %s\n", mysqli_get_client_info());echo "<br>";$conexao = mysqli_connect("localhost", "root", "loginc") or        die("Não pude conectar: " . mysql_error());    printf ("MySQL host info: %s\n", mysqli_get_host_info($conexao));echo "<br>";printf ("MySQL protocol version: %s\n", mysqli_get_proto_info($conexao));echo "<br>";printf ("MySQL server version: %s\n", mysqli_get_server_info($conexao));?>

Nota:

 

Na lib antiga libmysql.dll você não precisa especificar um parâmetro para funções do tipo mysqli_get_host_info(). Já na lib nova libmysqli.dll você deve especificar o link de conexão com o banco de dados, neste caso seria a variável $conexao mysqli_get_host_info($conexao).

 

Agora é correr pro abraço! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

A pessoal e a maneira de se conectar ao banco de dados, de selecionar uma base de dados, de configurar uma query... mudou tudo.

 

Fiz um script pra vcs verem a diferença (o script não está muito comentado mas da pra perceber muita coisa - como base de dados direto na strinco do connect por exemplo):

 

$_bd_host = "..."; // Host, geralmente é localhost	$_bd_user = "..."; // Nome do usuário do banco de dados	$_bd_pass = "..."; // Senha do usuário para acessar o banco de dados	$_bd_nome = "..."; // Nome da base de dados		// Conexão com o servidor MySQL	$_conexao = mysqli_connect($_bd_host, $_bd_user, $_bd_pass, $_bd_nome) or die ("não foi possível se conectar a base de dados");	// conectando a base de dados criada anteriormente// --- se omitir na string de conexão pode ser assim --> $banco = mysqli_select_db($_conexao, $_bd_nome);	$_data_atual = date("ymd");	$_hora_atual = time("H");	$titulo = $_POST['txtTitulo'];		$texto = $_POST['txtMensagem'];	$texto = nl2br($texto);			$creditos = $_POST['txtAutor'];		$_inserir = mysqli_query($_conexao, "insert into mensagens (titulo, texto, creditos, data, hora) values (\"$titulo\", \"$texto\", \"$creditos\", \"$_data_atual\", \"$_hora_atual\")") or die ("falha ao tentar gravar os dados - comando INSERT");// Fecha a conexão com o banco de dados// retorna 1 se for bem sucedido, 0 se falharif ($fecha_banco = mysqli_close($_conexao)) {echo "<br>Banco fechado com sucesso.";}else {echo "<br>Falha ao tentar fechar o banco de dados.";}

 

Pessoal se vcs quiserem saber mais cliquem aqui pra saber como construir os novos comandos da interface libmysqli.

 

Um abraço, fiquem com Deus. :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, me ajudem. Já li de tudo.......Desde que instalei o PHP5 não consigo acessar o MySQl. Pelo que tenho lido, tem que copiar o arquivo libmysql.dll para o system dir e que este arquivo está na pasta do PHP. ONde ????? na pasta do PHP que foi criada na instalação quase não tem arquivos lá....Pesquisando achei esse arquivo na pasta do MySQL, mas copiei para o \system32 e descomentei a linha no php.ini e mesmo assim, fica exibindo a messagem que não consegue carregar o php_mysql.dll.Oq faço.... ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desconsiderem a resposta anterior.Acabei baixando um outra versão do PHP (PHP5.0.2) e nesse apareceu muitos arquivos inclusive a pasta ext onde tem todas as DLL.Agora deuc certo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

No PHP 5, o MySQL não esta mais ativado por padrão, nem há mais a biblioteca que acompanha o PHP. Leia este FAQ para detalhes sobre o motivo. Esta extensão MySQL não suporta toda a funcionalidade das versões do MySQL posteriores a 4.1.0. Para isso, use MySQLi. Se você quiser instalar a extensão mysql em conjunto com a extensão mysqli você deve usar a mesma biblioteca de cliente para previnir quaisquer conflitos.

ref: http://br.php.net/manual/pt_BR/ref.mysql.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.