Ok andre muito obrigado pelas suas dicas vou criar um metodo para tratar essas questoes do SQL Injection e vou pesquisar sobre esse padrão Singleton vlw.
[quote name='André Manoel' date='05/07/2010, 10:55' timestamp='1278338141' post='1001044']
Bem ...
Em relação a desempenho ela influencia na seguinte questão...
Ela não tem um tratamento para a criação de vários objetos.
Ou seja, se você chamar a função conexao diversas vezes... ele criará diversas conexões diferentes com o banco.
Existe um padrão de projeto chamado
Singleton que trata esse problema.
E em questão de SQLInjection esta classe não realiza nenhum tratamento.
Então se alguém tentar realizar a invasão utilizando essa técnica ele pode conseguir acesso a todos os dados do banco... e isso não é legal...
Então você pode fazer o seguinte... tratar as entradas de SQL Injection quando você recebe os dados dos formulários ou criar a função para tratamento dentro desta classe...

[/quote]
André modifiquei a classe para usar Singleton ela esta funcionando ta cadastrando no banco o que eu gostaria de saber é se usei o singleton corretamente se realmente so vai haver uma conexão msm eu chamando diversa vezes esta função e a respeito do SQL injection estou conectando no banco através do pdo usando prepared statment isso num já evita o usao de SQL injection? Mas em todo casado coloque um addslashes no recebimento dos dados

class.conexao.php
<?php
define("HOST","localhost");
define("DBNAME","testar");
define("USER","user");
define("PASS","123456");
class Conexao{
private static $PDOinstance;
static public function singleton(){
if(!isset(self::$instance)){
try {
self::$PDOinstance = new PDO('mysql:host='.HOST.';dbname='.DBNAME,USER,PASS);
self::$PDOinstance->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e) {
print "Houve um erro com a conexão ao banco de dados <br/> ".$e->getMessage();
}
}
}
public function inserir($tabela = "",$array =""){
$ax = 0;
foreach($array as $auxCampoBd => $vlr){
if($ax == 0){
$campoBd .= $auxCampoBd;
$campoBd2 .= "?";
$ax = 1;
}
else{
$campoBd .= ",".$auxCampoBd;
$campoBd2 .= ",?";
}
}
if($tabela[1] == 1)//se for uma inserçao atravez de um procedure entra aqui
$sql = 'call '.$tabela[0].'('.$campoBd2.')';
else if($tabela[1] == 2)//Se for uma inserção direto na tabela entra aqui
$sql = ' INSERT INTO '.$tabela[0].'('.$campoBd.') VALUES ('.$campoBd2.') ';
try {
$i = 1;
$query = self::$PDOinstance->prepare($sql);
foreach($array as $auxcampo => $auxValor){
foreach($auxValor as $auxValor2 => $tipo){
$query->bindValue($i++,$auxValor2,$tipo);
}
}
$query->execute();
}catch (PDOException $e) {
echo $e->getMessage();
}
}
}
?>
acesso.php
<?php
include_once 'class.conexao.php';
$tabela[0] = "usuario";
$tabela[1] = 2;
$dados = array();
// Conluna tipo do vaalor
// na qual o valor valor que será inserido que será inserido
// será inserido
$dados['nome'][trim((!get_magic_quotes_gpc()) ? addslashes($_POST['nome']) : $_POST['nome'])] = PDO::PARAM_STR;
$dados["sobrenome"][trim((!get_magic_quotes_gpc()) ? addslashes($_POST['sobrenome']) : $_POST['sobrenome'])] = PDO::PARAM_STR;
$dados["email"][trim((!get_magic_quotes_gpc()) ? addslashes($_POST['email']) : $_POST['email'])] = PDO::PARAM_STR;
Conexao::singleton();//abrindo conexao;
$conexao = new Conexao();
$conexao->inserir($tabela,$dados);
[/quote]
Edição feita por: flavianog, 05/07/2010, 22:18.