Blog

Backup Base Dados MySQL Com PHP

A 15 de Outubro de 2009, categoria MySQL, PHP, SGBD, por Carlos Gonçalves
4

Uma das tarefas mais importantes de qualquer programador precisa de fazer com frequência é o Backup à sua base de dados MySQL. Em muitos casos, a Base de Dados é o que dirige a maior parte do site.
Embora a maioria dos web hostings fazem backups diários da Base de Dados dos clientes, porém, em alguns casos, depender deles para fazer backups e disponibilizar-nos, sem qualquer custo é no mínimo arriscado. É por isso que criei uma função de backup de dados que possa utilizar sempre que quiser.

backup_bd('localhost','utilizador','password','blog');

/* Fazer Backup da BD ou só de uma Tabela */
function backup_bd($host,$utilizador,$password,$nome,$tabelas = '*')
{

	$link = mysql_connect($host,$utilizador,$password);
	mysql_select_db($nome,$link);

	//obter todas as tabelas
	if($tabelas == '*')
	{
		$tabelas = array();
		$resultado = mysql_query('SHOW TABLES');
		while($coluna = mysql_fetch_row($resultado))
		{
			$tabelas[] = $coluna[0];
		}
	}
	else
	{
		$tabelas = is_array($tabelas) ? $tabelas: explode(',',$tabelas);
	}

	foreach($tabelas as $tabelas)
	{
		$resultado = mysql_query('SELECT * FROM '.$tabelas);
		$num_campos = mysql_num_fields($resultado);

		$return.= 'DROP TABLE '.$tabelas.';';
		$coluna2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$tabelas));
		$return.= "\n\n".$coluna2[1].";\n\n";

		for ($i = 0; $i < $num_campos; $i++)
		{
			while($coluna = mysql_fetch_row($resultado))
			{
				$return.= 'INSERT INTO '.$tabelas.' VALUES(';
				for($j=0; $j<$num_campos; $j++)
				{
					$coluna[$j] = addslashes($row[$j]);
					$coluna[$j] = ereg_replace("\n","\\n",$coluna[$j]);
					if (isset($coluna[$j])) { $return.= '"'.$coluna[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_campos-1)) { $return.= ','; }
				}
				$return.= ");\n";
			}
		}
		$return.="\n\n\n";
	}

	//guarda ficheiro
	$ficheiro = fopen('bd-backup-'.time().'-'.(md5(implode(',',$tabelas))).'.sql','w+');
	fwrite($ficheiro,$return);
	fclose($ficheiro);
}

Claro que vais precisar de fornecer as credenciais de login da Base de Dados, bem como o conjunto de tabelas que queres fazer o backup. Se colocares “*” ou nenhuma tabela, será feito um full backup da Base de Dados. O script faz o resto!

Mais vale não arriscar quando o site é de estrema importância. Faz backups frequentes ou podes ter que pagar o preço mais tarde!


Muito FracoFracoRazoávelBomMuito Bom (4 votos, média: 4,75 num total de 5)
Loading ... Loading ...
Tags:
 

Um Carta Para Ti, Webmaster

A 3 de Outubro de 2009, categoria Opiniões, Ideias e Dicas, por Carlos Gonçalves
5

Caro Webmaster,

Recentemente fui contactado por um dos teus clientes a solicitar os meus serviços.
Ele mencionou que estava insatisfeito com o teu trabalho e, queria que eu criasse o seu novo site. Estou a escrever esta carta para agradecer-te.

Não Contratar esta Pessoa

Não Contratar esta Pessoa

Primeiro, Webmaster, gostaria de agradecer-te por não usares includes do PHP no antigo site do cliente. Ao invés de simples mudanças em áreas comuns do site demorarem apenas alguns minutos, tornaste com sucesso, essa tarefa numa tarefa de horas para alterar intermináveis ficheiros HTML.

Também gostaria de agradecer-te por esperares semanas antes de iniciares as actualizações simples que o cliente solicitou. Mesmo que o cliente tenha informado que estava a aproximar-se uma data importante, mantiveste-te firme e completaste as actualizações, apenas quando tiveste tempo. Admiro a tua determinação.

E como é que me posso esquecer das inúmeras características da Web 1.0 que tão generosamente adicionaste ao site do cliente? Nenhum site fica completo sem um berrante contador, um livro de visitas, e acima de tudo, aqueles applets de carregamento rapidíssimos para a navegação. Para não mencionar os GIFs “Em Construção” que colocaste no site durante o desenvolvimento (Adoro ver os trabalhadores das Obras a balançarem o martelo uma e outra vez), e a mensagem “Melhor Visualizado no Internet Explorer“. Pensaste mesmo muito nos utilizadores que até dizes qual o browser que devem usar – Eu nunca teria pensado nisso!

Implorava para perceber os teus conhecimentos de CSS. A maneira com que os LINKs ficam a negrito e aumentam alguns pixels quando passamos o rato por cima, é tão puro, é magnifico. Quer dizer, ao fazeres isso, o utilizador DEFINITIVAMENTE sabe que o seu rato está por cima de um link! E admiro como evitas a prática de folhas de estilo (CSS) externas – Quem é que quer que cada página tenha a mesma aparência? Onde é que está a imaginação?

O teu conhecimento de SEO é incomparável. Submeter site do cliente para centenas de motores de pesquisa? Onde é que encontraste tempo?
E deixar algumas páginas com o título “Untitled Document?”, simplesmente Genial. Como é que se chama isso? Psicologia reversa?

Ah, e para não me esquecer de mencionar os métodos que usas para me manter entretido enquanto visualizo o site do cliente. Esse player embutido que me permite ouvir MIDIs e outros vários sons é uma alegria! Também adoro quando sublinhas o texto para que eu possa jogar o “É um Link ou Não é um link?” – Que divertido!

Acima de tudo, Webmaster, gostaria de te agradecer por andares por aí. Ao desempenhares tão bem o teu trabalho estás a ajudar-me a ganhar clientes, e permitir-me fazer o meu trabalho bem. Nunca te vás embora – mantém o óptimo trabalho!

Cordialmente,

Carlos Gonçalves
Sénior Web Developer


Muito FracoFracoRazoávelBomMuito Bom (1 votos, média: 5,00 num total de 5)
Loading ... Loading ...
Tags:
 

Botão Topo Com MooTools

A 2 de Outubro de 2009, categoria JavaScript, MooTools, por Carlos Gonçalves
1

Sempre que tens uma página com muito conteúdo, deves considerar adicionar um link para topo do site, na parte inferior da página para que o utilizador não necessite de ter esse trabalho sempre que quiser ir para o topo da página.
Agora e, se o problema for, querer ir para o topo da página em qualquer parte no meio da página? Com o MooTools, podemos criar um “top link” com uma marca d’água que acompanha os utilizadores conforme forem descendo na página.

botao demonstracao   Botão Topo Com MooTools

O XHTML

<a href="#topo" id="irParaTopo" class="no-click no-print">Topo da Página</a>

Coloca isto em qualquer parte dentro da página que pretendes.

O CSS

#irParaTopo { display:none; position:fixed; right:5px; bottom:5px; }

Isto posiciona o código do elemento numa posição fixa, assim permanece sempre no mesmo lugar.

O MooTools (JavaScript)

new SmoothScroll({duration:500});

/* Ir para o topo após 300 pixels para baixo */
var irParaTopo = $('irParaTopo ');
irParaTopo .set('opacity','0').setStyle('display','block');
window.addEvent('scroll',function(e) {
	irParaTopo .fade((window.getScroll().y > 300) ? 'in' : 'out')
});

O código é surpreendentemente pequeno.
Claro que usamos SmoothScroll para fazer com que a “transição” do footer para o topo seja “suave”. Podes ajustar a quantidade de pixels, como queiras.

botao demonstracao   Botão Topo Com MooTools

IE Fix

/* Ir para o topo */
var irParaTopo = $('irParaTopo ');
irParaTopo .set('opacity','0').setStyle('display','block');
window.addEvent('scroll',function(e) {
	if(Browser.Engine.trident4) {
		irParaTopo .setStyles({
			'position': 'absolute',
			'bottom': window.getPosition().y + 10,
			'width': 100
		});
	}
	irParaTopo .fade((window.getScroll().y > 300) ? 'in' : 'out')
});

Muito FracoFracoRazoávelBomMuito Bom (1 votos, média: 5,00 num total de 5)
Loading ... Loading ...
Tags:
 
Página 25 de 38« Primeira...242526...Última »

Procuras alguma coisa?

Utiliza o formulário abaixo para pesquisares no meu site:


Ainda não encontraste o que procuravas? Deixa um comentário num post ou contacta-me para que te possa ajudar!

Links de Interesse!

Links por mim recomendados...

Arquivos

Ordenado de forma cronológica...