“UPDATE”函数在MySQL表中创建一个新行

时间:2015-01-19 18:14:22

标签: php mysql mysqli

从今天早晨起,我一直在经历一个非常特殊的问题。 当我调用方法modifica() 2次时,它会在utenti表中创建一个新的空行。

这就是我所说的(没有循环或其他任何东西): if(true===acquista_annuncio($_POST['crediti_annuncio'],$_POST['idmessaggio']))

这是功能:

function acquista_annuncio($crediti_annuncio,$id_annuncio){
global $db;
$dati_tempo_reale=$db->estrai("utenti","email='".$_SESSION['email']."'",NULL,1);

$id_utente=$dati_tempo_reale[0]['id'];
$visualizzazioni_impresa=$dati_tempo_reale[0]['visualizzazioni'];

//Scalare crediti
$crediti_disponibili=crediti_disponibili();
$crediti_utente=$crediti_disponibili-$crediti_annuncio;
$db->inserisci("utenti","crediti","'$crediti_utente'");

//Inserimento ID ditta nella colonna visualizzazioni
$annuncio=$db->estrai("richieste_preventivi","id='$id_annuncio'",NULL,1);
$annuncio=$annuncio[0]['visualizzazioni'];

//Controlla se l'annuncio non è già stato visualizzato dalla stessa ditta, altrimenti restituisce false

if(false===strpos($annuncio,$id_utente)){
    $visualizzazioni_annuncio=$annuncio.",".$id_utente;
    $visualizzazioni_impresa=$visualizzazioni_impresa.",".$id_annuncio;

    $db->modifica("richieste_preventivi","visualizzazioni='$visualizzazioni_annuncio'","id='$id_annuncio'",1);
    $db->modifica("utenti","visualizzazioni='$visualizzazioni_impresa'","id='$id_utente'",1);
    return true;}
else
    { return false; }
}

这是$ db类的方法modifica

$ this-> connessione是mysqli对象。

public function modifica($tabella,$campi,$dove,$limite)
    {
    //Esempio: $db->modifica("prova","nome='Elena'","id=1",NULL);
    if(isset($tabella) && isset($campi) && isset($dove))
        {
        $this->query=addslashes(htmlentities("UPDATE ".$tabella)); 
        $this->query.=htmlentities(" SET ".$campi." WHERE ".$dove);

        if(isset($limite))
            $this->query.=addslashes(" LIMIT ".$limite);
        $this->query.=addslashes(";");

        //DEBUG
        echo "console.log(\"$this->query\");";
        if(true===$this->connessione->real_query($this->query))
        return true;
        else
        return false;
        }
        else return false;
    }

0 个答案:

没有答案