Ciao a tutti,
Mi trovo in questa situazione :
Ho elaborato una sorta di pattern active record solo che mi viene difficile gestire i campi null...
Vi posto un po di codice e vi spigo cosa succede :
Codice PHP:
$utente = new itron_utente_utente();
$utente->setConnection($db);
$utente->setUser($_REQUEST['user']);
$utente->setScadpsw(SetData($_REQUEST['scadpsw']));
$utente->setCognome(SetTesto($_REQUEST['cognome']));
$utente->setNome(SetTesto($_REQUEST['nome']));
$utente->setTelefono(SetTesto($_REQUEST['telefono']));
$utente->setEmail(SetTesto($_REQUEST['mail']));
$utente->setFlagamm(SetTesto($_REQUEST['flagamm']));
$utente->Update();
I POST sono vengono passati all'interno di una funzione che esegue le seguenti operazioni
Codice PHP:
function SetTesto($txt,$nomecampo = NULL){
$txt=trim($txt);
if($txt=="" || $txt==NULL)
return "NULL";
$txt=str_replace("\"","''",$txt);
$txt=addslashes($txt);
return "'".$txt."'";
}
infine il metodo per fare update
Codice PHP:
public function Update(){
$sql ="UPDATE utenti SET ";
$sql.="idutente = :idutente,";
$sql.="ut_idsession = :ut_idsession,";
$sql.="user = :user,";
$sql.="password = :password,";
$sql.="ut_nome = :nome,";
$sql.="ut_cognome = :cognome,";
$sql.="ut_email = :email,";
$sql.="ut_telefono = :telefono,";
$sql.="flagamm = :flagamm,";
$sql.="scadpsw = :scadpsw,";
$sql.="blocco = :blocco ";
$sql.="WHERE idutente = :id";
$parameter = array('idutente' => $this->idutente,
'ut_idsession' => $this->ut_idsession,
'user' => $this->user,
'password' => $this->password,
'nome' => $this->nome,
'cognome' => $this->cognome,
'email' => $this->email,
'telefono' => $this->telefono,
'flagamm' => $this->flagamm,
'scadpsw' => $this->scadpsw,
'blocco' => $this->blocco,
'id' => $this->idutente);
$this->db->executeUpdate($sql,$parameter);
if($this->db->getLastError()!=""){
echo "ciao";
return false;
}else{
return true;
}
}
Il problema che se il campo non viene compilato in questo caso in mysql ci finisce NULL il formato testuale e non riesco proprio a capire dove possa essere il problema.