Ir para conteúdo

POWERED BY:

Arquivado

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

Fabyo

Mini curso: Conexões

Recommended Posts

Com esse mini curso tentarei explicar muitas coisas sobre conexoes com o banco de dados MySQL e varios tipos de conexoes da mais simples para a mais elaborada

 

mysql_connect()

 

resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )

 

resumindo

 

resource mysql_connect (nome do server , usuario, senha , bool novo link, int client_flags)

 

exemplo padrao(funcional)

 

mysql_connect("localhost", "root", "");

 

essa conexao acima ira funcionar quando você ta com o usuario padrao do mysql que é root e sem senha

 

mysql_connect() estabelece uma conexão com o servidor MySQL. Os seguintes padrões são assumidos para os argumentos opcionais que estiverem faltando: server = 'localhost:3306', username = nome do usuário dono do processo do servidor, password = senha vazia.
O parâmetro server pode também incluir um número de porta. Exemplo "hostname:port" ou um caminho para um socket local, exemplo ":/path/to/socket" para o servidor local

 

resumindo ele quer dizer que se você nao passar os parametros ele entende que você quer usar o padrao

exemplo:

 

mysql_connect("localhost");

 

pronto esse exemplo ira funcionar desque seu usuario seja o root sem senha

 

conectando por tcp/ip

 

Nota: Em qualquer lugar que você especificar "localhost" ou "localhost:port" como servidor, a biblioteca de cliente MySQL irá sobrepor isto e tentar conectar com um socket local (named pipe no Windows). Se você quizer usar TCP/IP, use "127.0.0.1" ao invés de "localhost". Se biblioteca de cliente MySQL tentar conectar ao socket local errado, você deverá estabelecer o caminho correto em mysql.default_host na sua configuração do PHP e deixar o campo do servidor em branco.

 

new_link

Se uma segunda chamada é feita para mysql_connect() com os mesmos argumentos, um novo link não será estabelecido, mas ao invés disto o identificador da conexão já aberta será retornado. O parâmetro new_link modifica esta opção e faz com que a função mysql_connect() sempre abra um novo link, mesmo que mysql_connect() seja chamada com os mesmos parâmetros.

 

client_flags

 

O parâmetro client_flags pode ser uma combinação das constantes MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE.

 

constante descrição 
MYSQL_CLIENT_COMPRESS usa o protocolo de compressão 
MYSQL_CLIENT_IGNORE_SPACE Permite espaço após o nome de função 
MYSQL_CLIENT_INTERACTIVE Permite interactive_timeout segundos (ao inves de wait_timeout) de inatividade antes de fechar a conexão.

 

mysql.default_port

O número padrão da porta TCP a usar quando conectar com o servidor do banco de dados se nenhuma outra porta for especificada. Se nenhum padrão for especificado, aporta será obtida da variavel de ambiente MYSQL_TCP_PORT, da entrada mysql-tcp em /etc/services ou da constante da compilação MYSQL_PORT, nesta ordem. Windows irá usar somente a constante MYSQL_PORT.

 

o mysql suporta 100 conexoes simutaneas por padrao na verdade 99 porque ele reserva uma conexao para uma conta admnistradora

 

http://dev.mysql.com/doc/refman/4.1/pt/too...onnections.html

 

O número máximo de conexões MySQL depende de quão boa é a biblioteca de threads na dada plataforma. Linux ou Solaris devem estar aptos a suportar 500-1000 conexões simultâneas, dependendo de quanta RAM você tem e do que o cliente está fazendo.

 

uma dica abra sempre a conexao na hora que for usar ela e feche em seguida, apesar do php fechar a conexao ao termino do script ou da pagina sempre é bom ter total controle do seu sistema

 

muitas pessoas fazem assim:

 

<?

include "conecta.php";

?>

<html>

...

 

<?

codigos...

?>

 

o melhor mesmo é você abrir a conexao quando for precisar dela e nao só incluir um arquivo ja com a conexao pronta, voce pode ate incluir um script que tenha a função de conectar, mas coloque ele numa função ou para quem sabe monte uma classe e abre a conexao na hora do uso

 

vou mostrar uns exemplos de conexoes usando php4

 

mysql_connect("localhost", "usuario", "senha");

mysql_connect("meu ip", "usuario", "senha");

mysql_connect("127.0.0.1", "usuario", "senha");

 

as 3 conexoes acima irao funcionar normal

 

mais exemplos mas agora com um simples tratamento de erros:

 

o @ operadores de controle de erro serve para ocultar o erro mostrado pelo php

http://br.php.net/manual/pt_BR/language.op...rrorcontrol.php

 

@mysql_connect("localhost", "usuario", "senha") or die(mysql_error());

@mysql_connect("localhost", "usuario", "senha") or exit(mysql_error());

 

die e exit sao sinonimos http://br.php.net/die

 

esses exemplos acima irao mostrar uma mensagem de erro do mysql caso a conexao falhe

 

http://br.php.net/mysql_error mensagem do erro

http://br.php.net/mysql_errno numero do erro

 

exemplo similar mas que eu tenho mais liberdade para mostrar o erro ou guardar numa variavel caso precise mostrar ou salvar num sistema de logs

 

@mysql_connect("localhost", "usuario", "senha");
if(mysql_errno() != 0) {// mysql_errno = 0 sinal que nao tem erros
echo "Erro";
}

 

outro exemplo simples usandouma função

 

<?

function abrir()
{
@mysql_connect("localhost", "usuario", "senha");
return mysql_errno == 0 ? true : false;//se nao tiver erros retorna verdadeiro ao contrario falso
}	

function fechar()
{
mysql_close();
}

?>

 

dai quando precisar conectar em qualquer pagina basta incluir o arquivo e chamar abrir()

e depois fechar()

 

se você usar mais de um banco de dados ao mesmo tempo pode usar um link para indentificar a conexao que você quer manipular no momento

 

$conexao1 = mysql_connect("localhost", "usuario", "senha");

mysql_select_db("banco1", $conexao1);

 

$conexao2 = mysql_connect("localhost", "usuario", "senha");

mysql_select_db("banco2", $conexao2);

 

mysql_close($conexao1);/ fechando conexao 1

 

mais um exemplo de conexao agora usando oop

 

exemplo cedido pelo membro red neck:

 

<?
class Mysql{
var $conn;
var $info = Array("localhost","usuario","senha","banco");

function Open(){
	$this->conn=mysql_connect( $this->info[0],
							   $this->info[1],
							   $this->info[2]
							 ) or die("Mysql_Error: ".mysql_error());
	mysql_select_db($this->info[3]) or die("Mysql_Error: ".mysql_error());
}
function Query($sql){
	$this->Open();
		$query=mysql_query($sql) or die("Mysql_Error: ".mysql_error());
	$this->Close();
		return $query;
}
function Close(){
	return mysql_close($this->conn) or die("Mysql_Error: ".mysql_error());
}
}

$con = new Mysql();// estancia a classe
$con->Open();//abre a conexao
$re = $con->Query("select * from tabela");// faz um select
?>

 

com o php 5 ele vem com muitos recursos e ele ja vem com uma classe pronta para conectar com o mysql

essa classe é a mysqli php.net/mysqli

 

exemplo de uso

 

$con = new mysqli("localhost", "usuario", "senha", "banco");

 

como podem ver que legal a string de conexao ja é passada com o nome do banco de dados

nao existe mais mysql_select_db :thumbsup:

 

bom é isso ai, na proxima explicarei mais a fundo sobre oop php5

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a todos !Parabéns Fabio !São sempre fantasticas e muito bem detalhadas suas explicações, consigo tirar sempre muito proveito delas.PARABÉNS e um abraço !Angelo Rogerio Rubin.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, gostaria de parabenizá-lo pelo mini-curso.Em sua matéria visualizei várias formas de se conectar com o banco de dados, e gostaria de saber se corro o risco na parte de segurança com algum deles ou isso não é possível acontecer?Abraço.Atenciosamente, Tiago lemos

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.