0

Utilizando classes no PHP

criado por André de Castro Zorzo em 08/08/2001 6:12pm
<p>7. Passando argumentos para as funções</p>
<p>Passar argumento para as funções é muito utilizado dentro do contexto classes, pois
os valores podem ser utilizados em qualquer parte do script, mesmo que se tenha
definido como um valor local. Vejamos um exemplo:</p>
<p><font face="Courier New"><?
<br># para esse arquivo daremos o nome de mysql_class.php
<br>class TMySQL { <br>
 var $host;    // qual o servidor <br>
 var $db;      // qual a base <br>
 var $user;    // qual o username <br>
 var $pass;    // qual a senha <br>
 var $socket;  // socket da conexao com o banco <br><br>
 function connect($host, $db, $user, $pass) { <br>
   $this->host = $host; <br>
   $this->db  = $db; <br>
   $this->user = $user; <br>
   $this->pass = $pass; <br>
   $this->socket=mysql_connect($this->host,$this->user,$this->pass);<br>
   if (!$this->socket) { <br>
     echo "Não foi possível conectar-se ao Bando de Dados MySQL"; <br>
   }<br>
   else<br>
   {<br>
   if (!mysql_select_db($this->db,$this->socket)) { <br>
     echo "Banco de dados não encontrado"; <br>
   } <br>
   else <br>
   {<br>
     echo "Banco de dados conectado!";<br>
   }<br>
   }<br>
 }<br><br>
 function ultimo_reg() { <br>
   var $ultimo;<br>
   $this->ultimo = mysql_insert_id($this->socket); <br>
   echo "$this->ultimo";<br>
 }<br><br>
 function query ($string) { <br>
   var $myquery;<br>
   $this->myquery = mysql_query($string,$this->socket); <br>
   if (!$this->myquery) { <br>
      echo "Erro manipulando query!";<br>
   } <br>
   else<br>
   { <br>
   if (substr($string,0,6)=="select") { <br>
      echo "Comando aceito!";<br>
   } <br>
   else<br>
   {<br>
      echo "Isso não é um select";<br>
   } <br>
   } <br>
 }<br>
}<br>
?><br></font></p>
<p>Agora, para manipularmos a função acima podemos instanciar a classe dentro de um
script e utilizar a função para verificar se o comando passado é válido:</p>
<p><font face="Courier New"><?<br>
# para esse arquivo daremos o nome de myfile.php<br>
 MySQL = new TMySQL();<br>
 MySQL->connect($host, $db, $user, $pass);<br>
 MySQL->query("select * from fornecedores");<br>
?><br></font></p>
<p>8. Retornando valor nas funções</p>
<p>Utilizando funções, podemos passar argumentos, como podemos retornar valores em um
contexto classes, retornar valores é utilizado tanto quanto passar argumentos.
Para tal, fazemos o seguinte:</p>
<p><font face="Courier New"><?
<br># para esse arquivo daremos o nome de mysql_class.php
<br>class TMySQL { <br>
 var $host;    // qual o servidor <br>
 var $db;      // qual a base <br>
 var $user;    // qual o username <br>
 var $pass;    // qual a senha <br>
 var $socket;  // socket da conexao com o banco <br><br>
 function connect($host, $db, $user, $pass) { <br>
   $this->host = $host; <br>
   $this->db  = $db; <br>
   $this->user = $user; <br>
   $this->pass = $pass; <br>
   $this->socket=mysql_connect($this->host,$this->user,$this->pass);<br>
   if (!$this->socket) { <br>
     echo "Não foi possível conectar-se ao Bando de Dados MySQL"; <br>
   }<br>
   else<br>
   {<br>
   if (!mysql_select_db($this->db,$this->socket)) { <br>
      echo "Banco de dados não encontrado"; <br>
   } <br>
   else <br>
   {<br>
      echo "Banco de dados conectado!";<br>
   }<br>
   }<br>
 }<br><br>
 function ultimo_reg() { <br>
   var $ultimo;<br>
   $this->ultimo = mysql_insert_id($this->socket); <br>
   echo "$this->ultimo";<br>
 }<br><br>
 function query ($string) { <br>
   var $myquery;<br>
   $this->myquery = mysql_query($string,$this->socket); <br>
   if (!$this->myquery) { <br>
      echo "Erro manipulando query!";<br>
   } <br>
   else<br>
   { <br>
   if (substr($string,0,6)=="select") { <br>
      echo "Comando aceito!";<br>
   } <br>
   else<br>
   {<br>
      echo "Isso não é um select";<br>
   } <br>
   } <br>
   $this->retorno($string)<br>
 } <br><br>
 function retorno ($string){<br>
   echo "Comando $string é invalido";<br>
 }<br>
}<br>
?></font></p>
<p>Observe que na função retorno(); é passada a mesma $string que foi passada como
argumento na função query(); e então temos o retorno de um valor.</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 (~14 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 (~14 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 (~18 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 (~18 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 (~19 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 (~19 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 (~19 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 (~19 anos atrás)

Novo Comentário:

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