0

Utilizando classes no PHP

criado por André de Castro Zorzo em 08/08/2001 6:12pm
<h3>Utilizando Classes no PHP</h3>

  1. O que são classes e porque utiliza-las?

  2. Definindo uma classe

  3. Definindo uma extensão de uma classe

  4. Definindo variáveis globais

  5. Definindo uma função

  6. Definindo variáveis locais

  7. Passando argumentos para as funções

  8. Retornando valor nas funções



<p>1. O que são classes e porque utiliza-las?</p>

<p>Já vi e ouvi muitas vezes essa pergunta “O que são
classes e porque utiliza-las?”. Bem, classes nada mais é do que uma coleção
de funções, ou seja, é uma maneira de “reciclar” os códigos
desenvolvidos.</p>
<p>Imagine, por exemplo, um programador que desenvolve
um site para comércio eletrônico, onde existe um cadastro de produtos, um
cadastro de clientes, um cadastro de fornecedores, etc. Agora imagine que ele
tem que escrever a mesma função para conectar ao banco de dados, para cada
script que ele tiver, até que não é tão problemático fazer isso, não é
mesmo?</p>
<p>Agora imagine que depois que está pronto o sistema,
alguém pede a esse programador que altere o local onde está armazenado o banco
de dados, bem agora o nosso programador vai ter que alterar arquivo por arquivo
o host do banco de dados, que trabalhão não acha?.</p>
<p>E se o nosso programador tivesse desenvolvido uma
classe com funções para conectar ao banco de dados, então seria necessário
ele alterar somente um arquivo e todos os script que estivesse usando seriam
alterado automaticamente. Simples não?.</p>

<p>2. Definindo uma classe</p>
<p>Neste momento veremos como definir e instanciar uma
classe. Para tal, começamos com o seguinte comando:</p>

<p><font face="Courier New"><?<br>
# para esse arquivo daremos o nome de mysql_class.php<br>
class TMySQL { <br>
  //....<br>
}<br>
?></font></p>
<p>Eis que nasce a criança! Agora nossa classe está criada, o que falta é algumas funções
que veremos nos capítulos seguintes, para utilizarmos esta classe precisamos
instanciá-la dentro de um script php, para isso fazemos o seguinte:</p>
<p><font face="Courier New"><?<br>
# para esse arquivo daremos o nome de myfile.php<br>
$MySQL = new TMySQL();<br>
?></font></p>
<p>Neste momento já instanciamos a nossa classe, e agora se tivéssemos funções
definidas dentro da nossa classe já poderíamos utiliza-las.</p>

Comentários:

Mostrando 1 - 10 de 36 comentários
ocaccy disse:
Ola pessoal do PHPBRASIL.

Tenho 2 servidores: X e Y, ambos com php e mysql.
Tenho uma base de dados no X e preciso acessar estes dados pelo site do Y.
Estive lendo sobre pipe e sockets, mas nao encontrei a solucao.

Fiz o seguinte código.

<?php
# Declaracao de variaveis.
$dbhost = '202.218.22.24';
$dbuser = 'user';
$dbpass = 'senha';
$dbname = 'bcodados';
# Conectando ao servidor e ao banco de dados.
$connection = mysql_connect($dbhost, $dbuser, $dbpass);
if (!$connection){ die ("Nao foi possivel a conexao ao servidor: “. mysql_error()); }
$db_select = mysql_select_db($dbname);
if (!$db_select){ die (“Nao foi possivel acessar o banco de dados: “. mysql_error()); }
# Insere valor de teste.
$queryp = “INSERT INTO kanri VALUES (, ‘MARIO’);”;
?>

Porém retorna este erro:

Nao foi possivel a conexao ao servidor:
Access denied for user ‘ user ‘@’211.16.230.41′ (using password: YES)
O 202.218.22.24 é o servidor onde se encontra minha base de dados e 211.16.230.41 e o IP do Y!

Me ajudem a ter acesso aos dados no servidor 202.218.22.24 (X).
Muito agradecipo pela ajuda.
ocaccy
17/08/2010 2:53am (~13 anos atrás)

ocaccy disse:
Ola pessoal do PHPBRASIL.

Tenho 2 servidores: X e Y, ambos com php e mysql.
Tenho uma base de dados no X e preciso acessar estes dados pelo site do Y.
Estive lendo sobre pipe e sockets, mas nao encontrei a solucao.

Fiz o seguinte código.

<?php
# Declaracao de variaveis.
$dbhost = '202.218.22.24';
$dbuser = 'user';
$dbpass = 'senha';
$dbname = 'bcodados';
# Conectando ao servidor e ao banco de dados.
$connection = mysql_connect($dbhost, $dbuser, $dbpass);
if (!$connection){ die ("Nao foi possivel a conexao ao servidor: “. mysql_error()); }
$db_select = mysql_select_db($dbname);
if (!$db_select){ die (“Nao foi possivel acessar o banco de dados: “. mysql_error()); }
# Insere valor de teste.
$queryp = “INSERT INTO kanri VALUES (, ‘MARIO’);”;
?>

Porém retorna este erro:

Nao foi possivel a conexao ao servidor:
Access denied for user ‘ user ‘@’211.16.230.41′ (using password: YES)
O 202.218.22.24 é o servidor onde se encontra minha base de dados e 211.16.230.41 e o IP do Y!

Me ajudem a ter acesso aos dados no servidor 202.218.22.24 (X).
Muito agradecipo pela ajuda.
ocaccy
17/08/2010 2:52am (~13 anos atrás)

<?
/* Inicio da classe */
class cMysql {
var $host;
var $db;
var $user;
var $pass;
var $conexao;
var $sSql;
var $arrRecordset;

function connect($host, $db, $user, $pass) {
$this->host = $host;
$this->db = $db;
$this->user = $user;
$this->pass = $pass;
$this->conexao = mysql_connect($this->host,$this->user,$this->pass);
if (!$this->conexao) {
echo "Não foi possível conectar-se ao Bando de Dados MySQL";
}else{
if (!mysql_select_db($this->db,$this->conexao)) {
echo "Banco de dados não encontrado";
}
}
}

function cMysql(){
$this->connect('localhost', 'redirecionamentos', 'root', 'senhadoroot');
}

function disconnect(){
mysql_close($this->conexao);
}

function free_page_result($recordset) {
mysql_free_result($recordset);
}

function get_num_rows() {
$this->num_rows = mysql_num_rows($this->arrRecordset);
return $this->num_rows;
}

function query ($sTipo, $sSql) {
$this->sSql = $sSql;
switch ($sTipo) {
case "select":{
$this->arrRecordset = mysql_query($this->sSql, $this->conexao) or die(mysql_error('Erro ao executar o Select:'.$this->sSql));
}
break;
case "insert":{
$this->arrRecordset = mysql_query($this->sSql, $this->conexao) or die(mysql_error('Erro ao executar o Insert:'.$this->sSql));
}
break;
case "delete":{
$this->arrRecordset = mysql_query($this->sSql, $this->conexao) or die(mysql_error('Erro ao executar o Delete:'.$this->sSql));
}
break;
case "update":{
$this->arrRecordset = mysql_query($this->sSql, $this->conexao) or die(mysql_error('Erro ao executar o Update:'.$this->sSql));
}
break;
}
return $this->arrRecordset;
}
}
/* Fim da classe */

/* Forma de Uso */
$qRedirecionamento = new cMysql;
$rsRedirecionamento = $qRedirecionamento->query('select','SELECT * from jwt_redirect ORDER BY redirect_time ASC');
$registros = $qRedirecionamento->get_num_rows();
for ($i = 0; $i < $registros; $i++){
echo '<br/> A URL: '.mysql_result($rsRedirecionamento, $i, "redirect_url").' foi acessada as '.mysql_result($rsRedirecionamento, $i, "redirect_time");
}
$qRedirecionamento->free_page_result($rsRedirecionamento);
?>
18/02/2007 5:39pm (~17 anos atrás)

Gustavo B. disse:
Então há falha no artigo?
Pois exite declaracao na função ultimo_reg()



function ultimo_reg() {

var $ultimo;

$this->ultimo = mysql_insert_id($this->socket);

echo "$this->ultimo";

}


25/08/2006 8:59am (~17 anos atrás)

if (substr($string,0,6)=="select") {

echo "Comando aceito!";

}

else

{

echo "Isso não é um select";

}

}

}

}

?>

nesta parte tem como usar o insert, delete e o update
25/07/2006 7:12am (~18 anos atrás)

var dentro da função não vai mesmo.. só dentro da classe
30/03/2006 5:33pm (~18 anos atrás)

Olá pessoal

Estranhamente eu não consigo declarar uma variável dentro de uma função da classe usando a palavra reservada "var" na frente

function teste($x)
{
var $z
bla bla bla
}

existe diferença em usar
function teste($x)
{
$z
bla bla bla
}
23/02/2006 6:49am (~18 anos atrás)

Olá pessoal

Estranhamente eu não consigo declarar uma variável dentro de uma função da classe usando a palavra reservada "var" na frente

function teste($x)


23/02/2006 6:47am (~18 anos atrás)

Agore entendi André, eu altero nessa sequência:

function connect($host, $db, $user, $pass) {

$this->host = $host;

$this->db = $db;

$this->user = $user;

$this->pass = $pass;
19/01/2006 11:57am (~18 anos atrás)

na página 2, tu encontrarás a sequencia da classe onde tem a função connect que recebe parametrod de login e senha do banco de dados...
18/01/2006 10:53am (~18 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)