Salve a tutti, ho un problema a cui non riesco a venire a capo, e spero che qualcuno di vooi saggi possa aiutarmi
Ho costruito una classe che fa da intermediaria tra le mie pagine o classi e mysqli.
Il mio problema č che mentre le query di SELECT funzionano senza problemi, le INSERT bloccano la pagina per un errore, ma non restituiscono il codice d'errore, e quindi non riesco a capire come risolvere il problema nč dove sia. Vorrei quindi chiedere se qualcuno ha voglia di dare un'occhiata alla mia classe che probabilmente č quella sbaglita, temo in qualche errore di base della programmazione ad oggetti che non riesco a cogliere.
La cosa strana č che ho provato a fare degli insert direttamente dal costruttore della mia classe e funzionano, la stessa query invece da errore se richiamata dall'esterno.
Il codice che richiama la mia classe č fa eseguire la funzione č il seguente:
Codice PHP:
class leTele
{
private $dbLink;
public $arrayRow = -1;
private $dataArray = array();
public function __construct()
{
$this->dbLink = new MysqlClass();
}
public function loadTela($nomeTela, $descrizione, $hDim, $wDim, $portfPos, $telePos, $contattiPos, $homePos, $fotoPos, $telaPath, $h_imm, $w_imm)
{
$this->dbLink->Query("INSERT INTO `tele` (`nometela`, `descrizione`, `w_dim`, `h_dim`, `portf_pos`, `tele_pos`, `contatti_pos`, `home_pos`, `foto_pos`, `telaPath`, `h_imm`, `w_imm`) VALUES ('$nomeTela', '$descrizione', '$wDim', '$hDim', '-1', '-1', '-1', '-1', '-1', '$telaPath', '$h_imm', '$w_imm'); ", false);
}
}
mentre l'errore contenente la query risultatnte č il seguente:
codice:
Error: q: INSERT INTO `tele` (`nometela`, `descrizione`, `w_dim`, `h_dim`, `portf_pos`, `tele_pos`, `contatti_pos`, `home_pos`, `foto_pos`, `telaPath`, `h_imm`, `w_imm`) VALUES ('ffff', 'ffffff', '555', '5555', '-1', '-1', '-1', '-1', '-1', 'foto/bandierex.jpg', '217', '421'); | E: | En:
ed ecco infine la classe di colleamento a mysqli
Codice PHP:
class MysqlClass
{
//Parametri per la connessione al database
private $nomehost;
private $nomeuser;
private $password;
private $nomedb;
private $mysqli;
//variabile di controllo delle connessioni attive
private $attiva=false;
private $arry;
private $myResult;
public function __construct()
{
$nomehost = $GLOBALS['host'];
$nomeuser = $GLOBALS['user'];
$password = $GLOBALS['pswd'];
$nomedb = $GLOBALS['db'];
$this->mysqli = new mysqli($nomehost, $nomeuser, $password, $nomedb);
$this->connetti();
}
//funzione di connessione
private function connetti()
{
if ($mysqli->connect_error) {
// notifica in caso di errore
echo "Errore in connessione al DBMS: ".$mysqli->connect_error;
// interruzione delle esecuzioni i caso di errore
exit();
}
return $this->attiva;
}
//funzione di disconnessione
public function disconnetti()
{
if($this->attiva)
{
if($mysqli->close())
{
$this->attiva = false;
return true;
}
}
return false;
}
//Passaggio della variabile di connessione
public function var_con()
{
if($this->attiva)
{
return $connessione;
}
return false;
}
public function fetch()
{
$result = $this->myResult->fetch_array(MYSQLI_BOTH);
return $result;
}
//funzione query
public function query($query, $fetch)
{
$this->myResult = $this->mysqli->query($query) or die("Error: q: ".$query." | E: ".$mysqli->error." | En: ".$mysqli->errno);
if($fetch==true)
{
$result=$this->fetch();
return $result;
}
return true;
}
public function singleQuery($query)
{
$this->mysqli->query($query) or die("Error: q: ".$query." | ".$mysqli->error." | ".$mysqli->errno);
return true;
}
public function queryAll($query)
{
$this->myResult = $this->mysqli->query($query) or die("Error: q: ".$query." | ".$mysqli->error);
$result = $this->myResult->fetch_all();
return $result;
}
}