Ir para conteúdo

POWERED BY:

Arquivado

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

visitante_php

[Resolvido] erro na funcao

Recommended Posts

eu criei esta funcao com um post meu anterior

<?php
 
 function erroMySQL($erroMySQL){
	 $erroMySQL = array();
	 $erroCodigo_MySQL = mysql_errno();
	if(array_key_exists($erroMySQL,$erroCodigo_MySQL )){
		echo $erroMySQL[$erroCodigo_MySQL].'<br>';
	}else{
		echo mysql_error().'<br>';
	}
}

 ?>

 

este script esta num arquivo separado e en outro vem este aki

 

<?php

 
$erroMySQL = array();

$erroMySQL[1005] = "Não é possível criar a tabela %s!";

$erroMySQL[1006] = "Não pode criar o banco de dados %s!";

$erroMySQL[1007] = "Este banco de dados já existe!";

$erroMySQL[1008] = "Não pode eliminar o banco de dados %s. Este banco não existe!";

$erroMySQL[1012] = "Não pode ler um registro numa tabela do sistema!";

$erroMySQL[1022] = "Não pode gravar! Chave duplicada na tablea %s!";

$erroMySQL[1032] = "Registro nao encontrado!";

$erroMySQL[1040] = "Excesso de conexões";

$erroMySQL[1044] = "Acesso negado ao usuário '%s'@'%s' ao banco de dados!";

$erroMySQL[1045] = "Acesso negado para o usuário '%s'@'%s'(senha usada: %s)";

$erroMySQL[1046] = "Nenhum banco de dados selecionado!";

$erroMySQL[1049] = "Banco de dados desconhecido: %s";

$erroMySQL[1050] = "Tabela '%s' já existe!";

$erroMySQL[1051] = "Tabela '%s' desconhecida!";

$erroMySQL[1061] = "Nome da chave duplicada!";

$erroMySQL[1062] = "Entrada '%s' duplicada para a chave '%d'!";

$erroMySQL[1102] = "Nome de banco de dados incorreto: '%s'!";

$erroMySQL[1103] = "Nome de tabela incorreto: '%s'!";

$erroMySQL[1146] = "Tabela '%s.%s' não existe!";

$erroMySQL[2000] = "Erro desconhecido no MySQL!";

$erroMySQL[2003] = "Não é possível conectar ao servidor Host em '%s'";

$erroMySQL[2005] = "Servidor Host MySQL desconhecido!";

$erroMySQL[2013] = "Conexão perdida ao servidor MySQL durante consulta!";

?>

fo q a funcao nao esta funfando, diz q o arqumento esta errado... e agora ? =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu coloco dentro ou fora da funcao?

 

no arquivo das mensagens?

 

essa funcao nao esta numa classe, mas sera usada numa...procedo normalmente ou ha um tratamento especifico...?

 

outra coisa, a mensagem q deveria sair em portugues, esta saindo em ingles....

Compartilhar este post


Link para o post
Compartilhar em outros sites

A mensagem saía em inglês pois você estava reiniciando a variável $eroMySQL, definindo-a como um array vazio.

 

faça assim:

 

function erroMySQL(){
	 global $erroMySQL;();
	 $erroCodigo_MySQL = mysql_errno();
	if(array_key_exists($erroMySQL,$erroCodigo_MySQL )){
		echo $erroMySQL[$erroCodigo_MySQL].'<br>';
	}else{
		echo mysql_error().'<br>';
	}
}

veja se dá certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora funfou....agora, no manual do mysql, tem akele coringa: %s, pra q a serve? creio q seja para mostrar algum valro retornado do mysql....como mostro...? ou tera q ser em php...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aquilo é simplesmente o valor que aparecerá na mensagem. Pode ser o nome da tabela, o nome do banco de dados, de um campo da tabela... Você nào tem como alterar o valor dele.

 

É como se estivéssemos usando a função printf(), mas dentro do código-fonte do MySQL. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok...

 

aproveitando o mesmo topico, eu tenho estes arquivos aki

 

classe1.php

 

<?php

include('c:\program files\vertrigoserv\Apache\htdocs\Sistem1\sistema\sys\config.php');
include('c:\program files\vertrigoserv\Apache\htdocs\Sistem1\sistema\sys\lib'.barra.errors_func.'err.func.mysql_sys.php');
Class Mysql{
	
	var $host;
	var $user;
	var $pass;
	var $db;
	
	function conectar($host,$user,$pass,$db){
		$conexao = mysql_connect($host, $user, $pass);
		if($conexao){
			$this->status = "Host conectado!<br>";
			echo $this->status;
			if($this->status){
				$sel_db = mysql_select_db($db);
				if($sel_db){
					$this->status_sel_db = "Db selecionado!<br>";
					echo $this->status_sel_db;
				}else{
					$this->status_sel_db = false;
					$this->erro = erroMySQL();
					echo $this->erro;
				}
			}else{
				$this->status = false;
				$this->erro = erroMySQL();
				echo $this->erro;
			}
		}
	}
}

$banco = new Mysql();
$banco->conectar('localhost', 'root','qwerty','na');

?>

errolibmysql.php

 

<?php


$erroMySQL[1005] = "Não é possível criar a tabela %s!";

$erroMySQL[1006] = "Não pode criar o banco de dados %s!";

$erroMySQL[1007] = "Este banco de dados já existe!";

$erroMySQL[1008] = "Não pode eliminar o banco de dados %s. Este banco não existe!";

$erroMySQL[1012] = "Não pode ler um registro numa tabela do sistema!";

$erroMySQL[1022] = "Não pode gravar! Chave duplicada na tablea %s!";

$erroMySQL[1032] = "Registro nao encontrado!";

$erroMySQL[1040] = "Excesso de conexões";

$erroMySQL[1044] = "Acesso negado ao usuário '%s'@'%s' ao banco de dados!";

$erroMySQL[1045] = "Acesso negado para o usuário '%s'@'%s'(senha usada: %s)";

$erroMySQL[1046] = "Nenhum banco de dados selecionado!";

$erroMySQL[1049] = "Banco de dados desconhecido: '%s'";

$erroMySQL[1050] = "Tabela '%s' já existe!";

$erroMySQL[1051] = "Tabela '%s' desconhecida!";

$erroMySQL[1061] = "Nome da chave duplicada!";

$erroMySQL[1062] = "Entrada '%s' duplicada para a chave '%d'!";

$erroMySQL[1102] = "Nome de banco de dados incorreto: '%s'!";

$erroMySQL[1103] = "Nome de tabela incorreto: '%s'!";

$erroMySQL[1146] = "Tabela '%s.%s' não existe!";

$erroMySQL[2000] = "Erro desconhecido no MySQL!";

$erroMySQL[2003] = "Não é possível conectar ao servidor Host em '%s'";

$erroMySQL[2005] = "Servidor Host MySQL desconhecido!";

$erroMySQL[2013] = "Conexão perdida ao servidor MySQL durante consulta!";

?>

errofuncmysql.php

 

<?php

require('c:\program files\vertrigoserv\Apache\htdocs\Sistem1\sistema\sys\config.php');
require 'c:\program files\vertrigoserv\Apache\htdocs\Sistem1\sistema\sys\lib'.barra.errors_lib.'err.lib.mysql_sys.php';

function erroMySQL(){
	global $erroMySQL;
	$erroCodigo_MySQL = mysql_errno();
	if(array_key_exists($erroCodigo_MySQL, $erroMySQL)){
		echo $erroMySQL[$erroCodigo_MySQL].'<br>';
	}else{
		echo '['.mysql_errno().']'.mysql_error();
	}
}

o problema eh q quando eu troco o nome do db para um inexistente, a mensagem de erro aparece conforme o esperado, a mensagem personalizada, ja quanto ao host, user e pass, nao acontece o mesmo, onde eu acho o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ae no caso, na condicional if onde da a mensagem de db conectado...eu coloquei 2 variaveis status, uma status e outra status_sel+db, eu posso usar a mesma anterior para o if do db...?

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.