Ir para conteúdo

POWERED BY:

Arquivado

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

Fabiosousa

problema com a conexão com o BD mysql

Recommended Posts

Oi galera, bom dia!

 

To precisnado de uma ajuda, seguinte: Instalei no meu XP o IIS(ta rodando legal), o PHP 4.1(ta rodando legal) e o MYSQL 4.1( N SEI SE TA RODANDO LEGAL). Criei um formulario simples de consults de CLIENTES e outra pagian em PHP q pega os dados desse formulario e É PARA COLOCAR NO BD MYSQL. Ta dando a seguionte msng:

 

" Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in c:\inetpub\wwwroot\clinil\cadastra_cli_teste.php on line 54

Falha na conexão com o Banco de Dados "

 

Alguem poderia resolver esse problema pra mim?

 

 

Grato pela atenção,

 

Fabio SOusa

Compartilhar este post


Link para o post
Compartilhar em outros sites

segue o codigo

 

<?php

// Recebe variaveis globais do formulario CADASTRA_CLI.HTM

global $nome;

 

 

// tirar espaços em branco das variaveis recebidas atraves do formulario

$nome = trim($nome);

 

 

// consiste as variaveis recebidas

if (empty($nome)) {

 

/* comentar blocos de codigo

*/

 

// se campos obrigatorios nao preenchidos, recria formulario e exibe mensagem de erro

//echo('

//<html>

//<head>

//<title>Cadastra_cli.php</title>

//<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

//</head>

//<body bgcolor="#FFFFFF" text="#oooooo" link="#333399" vlink="#cc0000" alink="#663399">');

 

//echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></center></p>");

 

//echo("<font locor=\"#FF0000\"><b>Campos(s) obrigatório(s) não preenchido(s)</br></font>");

 

//echo("

//<table width=\"640\" border=\"0\" cellspacing=\"0\" align=\"center\">

//<tr>

// <td>

// <p><b>Formulário de Inclusão:<br></b></p>

// <form method=\"post\" action=\"cadastra_cli_teste.php\">

// <p>Nome completo:

// <input type=\"text\" name=\"nome\" value=\"$nome\" size=\"25\" maxlength=\"50\"></p>

// </form>

// </td>

//</tr>

//</table>

//");

//}

//else {

// Inclui os dados na tabela clientes

 

// Cria uma conexão com o servidor MYSQL passando host, username e senha

$conec = mysql_connect ("localhost","root","estrela") or die ("Falha na conexão com o Banco de Dados");

 

// Declaração SQL

$declar = "INSERT into clientes values ('$nome')";

 

// Roda a query e trata o resultado

$tipo_msg = 'I';

if (mysql_db_query ("clinil", $declar, $conec)) {

$ok = 1;

header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

}

else {

$ok = 2;

header("Location= exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

// header("location: exibe_mensagem.php?variavel1=$variavel1&variavel2=$variavel2");

}

// Fechar a conexão com o servidor MYSQL (opcional)

mysql_close ($conec);

}

?>

 

obs: sera q tenho q atualizar mesmo as versões? USO PHP 4 e MYSQL 4.1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Client does not support authentication protocol requested by server; consider upgrading MySQL client

Atualize a sua versão do mysql e do php.

obs: sera q tenho q atualizar mesmo as versões? USO PHP 4 e MYSQL 4.1.

Com certeza! ;)

 

PHP 5.2.4

MySQL 5.0

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/index.php?showtopic=125190

 

Pode fazer isso denovo, naturalmente o que for executável irá ter a opção de reinstalar e alguns arquivos do PHP como o php.ini e algumas dll's que você coloca no diretório Windows ou Sytem32 terão que ser substituídos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Frenesi,

 

desulpa te importunar novamente,

 

fiz o seguinte: desinstalei o php e mysql 4 e instalei o 5.0 dos dois, o mysql ta rodando legal(pq criei na mao uma tabela com campos) o PHP 5 tambem, fiz o teste da pagina deles de teste para aparecer no browser(phpinfo.php)

só q agora qdo vou testar a pagina q fiz novamente n ta dando mais o erro de conexão, não ta aparecendo nada. Pagina em branco.

 

Clico no enviar formulario e vai pra pagina .php em branco.

 

O q houve? n mudei o codigo em nada, so atualizeis os dois programas.

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está inserindo no banco de dados corretamente?

 

No teu script, no else da linha 58:

header("Location= exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

Não é Location= e sim Location:.

 

Verifique se é isso, e se for isso, não está executando a query. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tinha realmente p "=" no Location

 

So q alterei e ainda n mostra nada so a pagina em branco

 

o codigo alterado agora:

 

$conec = mysql_connect ("localhost","root","estrela") or die ("Falha na conexão com o Banco de Dados");

 

// Declaração SQL

$declar = "INSERT into clientes values ('$nome')";

 

// Roda a query e trata o resultado

$tipo_msg = 'I';

if (mysql_db_query ("clinil", $declar, $conec)) {

$ok = 1;

header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

}

else {

$ok = 2;

header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

// header("location: exibe_mensagem.php?variavel1=$variavel1&variavel2=$variavel2");

}

// Fechar a conexão com o servidor MYSQL (opcional)

mysql_close ($conec);

}

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma dica que está na nota do manual sobre a função mysql_db_query():

Tenha cuidado que esta função NÃO muda de volta para o banco de dados que você estava conectado antes. Em outras palavras, você não pode usar esta função para temporariamente executar uma consulta sql em outro banco de dados, você deverá manualmente retornar ao banco de dados anterior. Aos usuários é fortemente recomendado usar a sintaxe bancodedados.tabela nas suas consultas ou mysql_select_db() ao invés desta função.

Vá fazendo uma espécie de debug, dando echo em várias partes do código para ver onde que ele está parando, se está dando erro, se está pelo menos entrando no primeiro if().

Compartilhar este post


Link para o post
Compartilhar em outros sites

me desculpe, esqueci de falar no inicio do papo, sou iniciante no php,

 

Se puderes, por gentileza, me dizer como faço esse DEBUG, te agradeço muito.

 

 

Fabio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tirei a parte comentada do seu código, execute e me diga o que retorna na tela:

<?php
global $nome;

$nome = trim($nome);

echo "1";

if ( empty($nome) )
{
	echo "2";
	
	$conec = mysql_connect ("localhost","root","estrela") or die ("Falha na conexão com o Banco de Dados");

	$declar = "INSERT into clientes values ('$nome')";

	$tipo_msg = 'I';

	if( mysql_db_query("clinil", $declar, $conec) )
	{
		echo "3";
		$ok = 1;
//		header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
	}
	else
	{
		echo "4";
		$ok = 2;
//		header("Location= exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
	}

mysql_close ($conec);
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou seja, o erro provavelmente está no if() de dentro ou antes dele.

 

Faça o seguinte:

<?php
$conec = mysql_connect("localhost", "root", "estrela") or die ("Falha na conexão com o Banco de Dados");
mysql_select_db("clinil", $conec);

global $nome;

$nome = trim($nome);

echo "1";

if( empty($nome) )
{
	echo "2";
	
	$query = mysql_query("INSERT INTO clientes VALUES ('$nome')") or die(mysql_error());

	$tipo_msg = 'I';

	if( mysql_affected_rows() > 0 )
	{
		echo "3";
		$ok = 1;
//		header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
	}
	else
	{
		echo "4";
		$ok = 2;
//		header("Location= exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");
	}

mysql_close($conec);
}
?>

E dá uma olhada nessa sua sintaxe SQL ai que está errada também, a menos que sua tabela só tenha um campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nenhum número? :blink:

 

Então é essa conexão...

 

Altere ai:

$conec = mysql_connect("localhost", "root", "estrela") or die (mysql_error());
mysql_select_db("clinil", $conec) or die(mysql_error());

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.