Fabyo 66 Denunciar post Postado Dezembro 13, 2005 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
angelorubin 142 Denunciar post Postado Outubro 22, 2007 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
Tiago Lemos 0 Denunciar post Postado Outubro 25, 2007 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