• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gurzi

[PHP]SQL Binds ( Usar o Prepare )

6 mensagens neste tópico

<?php
/**
* @author Tiago Palhota
* Purpose : Use SQL Binds
*
*/
class DB_MySQL
{
public  $binds;
public  $query;
public  $dbh;
private $result;

public function execute()
{
	$binds = func_get_args();
	foreach($binds as $index => $name){
		$this->binds[$index+1] = $name;
	}

	$query = $this->query;
	foreach( $this->binds as $ph => $pv )
	{
		$query = str_replace(":$ph", "'" . mysql_escape_string($pv) . "'", $query);
	}

	$this->result = mysql_query($query,$dbh);

}


}
  public function prepare($query,$dbh)
{
	$this->query = $query;
	$this->dbh   = $dbh;
  }


}

?>

Atenção que para usar isto , devem passar pelo $dbh um resourse de uma conecção ao MYSQL. Deixo isso ao vosso critério.

Isto permite algo como isto :

$objecto->prepare("SELECT* FROM users WHERE name = :1");

$objecto->execute($name);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se usasses a class ADOdb já tinhas isso resolvido, e ao mudar uma linha podias mudar de SGBD :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se usasses a class ADOdb já tinhas isso resolvido, e ao mudar uma linha podias mudar de SGBD :P

Dá para implementar isso, apenas ainda não acabei x)

Só queria expressar a ideia!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi.

O que é que isto faz?

Pdes dar um exemplo?

A ideia principal é escusares de estares sempre a fazer mysql_escape_string aos conteúdos passados por um formulário, assim usas o comando prepare para lhe dar a query, e depois passas-lhe os argumentos no execute ou no query(methods) e ele internamente coloca as suas protecções do mysql_escape_string xD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora