输入数据两次

时间:2011-06-02 15:23:16

标签: php mysql oop

我为mysql插入数据制作了一个php代码。

if(isset($_POST['submitted'])){

$img = NULL;
if(isset($_FILES['upload'])){

    include('classes/imagens.class.php');   
    $imagem = new imagem($_FILES['upload']['name'],$_FILES['upload']['tmp_name'],$_FILES['upload']['size'],$_FILES['upload']['error']);

            if($imagem->verifica_extensao($_FILES['upload']['type']) && $imagem->verifica_tamanho()){
                $erro = $imagem->upload();   
                $img = $imagem->getNome(); 
            }              

}

$trimmed = array_map('trim', $_POST); // usa a função trim() em todas as variáveis POST
$tit = $cat = $dat = $end = $des = $pr = $dono = $hor = FALSE; // atribui falso para as variaveis que poderão receber as variaveis POST

    $mysql = new mysql('eventos');

if(!empty($trimmed['nome'])){
    $tit = $mysql->escape_string($trimmed['nome']);
}

    if(!empty($trimmed['categoria'])){
    $cat = $mysql->escape_string($trimmed['categoria']);
}

    if(!empty($trimmed['data'])){
    $dat = $mysql->escape_string($trimmed['data']);
}

if($trimmed['hora'] != '--' && $trimmed['minuto'] != '--'){
            $hor = $trimmed['hora'].":".$trimmed['minuto'];
    $hor = $mysql->escape_string($hor);
}

if(!empty($trimmed['endereco'])){
    $end = $mysql->escape_string($trimmed['endereco']);
}

    if(!empty($trimmed['descricao'])){
    $des = $mysql->escape_string($trimmed['descricao']);
}

    if(!empty($trimmed['preco'])){
    $pr = $mysql->escape_string($trimmed['preco']);
}

    $dono = $_SESSION['user_id'];


   if($tit && $cat && $dat && $end && $des && $pr && $dono && $hor){

        $evento = new evento($tit, $cat, $end, $dat, $hor, $des, $pr, NULL, NULL, $img,$dono, NULL, NULL);
        $evento->cadastrar();
        echo '<h3>Evento cadastrado com sucesso!</h3>';
        echo "<a href=".BASE_URL."><h1>Clique aqui para voltar para a página inicial</h1></a>";
    exit();     
   }

    }   

和我的函数cadastrar()

function cadastrar(){
    $this->mysql->sql("INSERT INTO eventos (nome, categoria, data, endereco, descricao,ref_imagem,preco,user_id, hora, data_registro) VALUES ('$this->Titulo','$this->Categoria','$this->Data','$this->Endereco','$this->Descricao','$this->RefImagem','$this->Preco','$this->Dono','$this->Horario',NOW())");
}

和我的函数sql()

function sql($query){
            $this->connect();
            $this->query = $query;
            if(mysqli_query($this->dbc,$this->query)){
                    $linhas_afetadas = mysqli_affected_rows($this->dbc);
                    echo $query;
                    $this->result=mysqli_query($this->dbc,$this->query);
                    $this->disconnect();
                    $retorno = array($this->result,$linhas_afetadas);
                    return $retorno;
            } else {
                    die("Ocorreu um erro ao executar a Query SQL abaixo:<br>$query");
                    $this->disconnect();
            }

    }

和......结果是桌子上有2个相同的列。

1 个答案:

答案 0 :(得分:5)

每次调用mysqli_query时,都会向数据库启动查询。你这样做了两次:

if (mysqli_query(...))
{
    ....
    $this->result = mysqli_query(...);
}

这就是你以重复数据结束的原因。