Ciao,
In locale ho un mio progettino che mi fa da palestra e funziona tutto alla grande, sta sera per testare un paio di cose che sto vedendo con un amico qui sul forum ho messo la cartella online nel mio sito, ok il progetto è un semplice mvc dove ho creato le mie classi e metodi, ma questo non c'entra, il punto è che appena apro la connessione al DB, ho un area di login per entrare e NESSUN PROBLEMA, entro mi riconosce legge nella cartella utenti etc...etc...
Il problema nasce nel momento in cui faccio le select che facevo in locale, sembra che sul database anche se c'è l'estenzione mysqli non riconosce l'OOP di mysqli ma solamente il procedurale...Ho notato che è anche case sensitive nel recuperare i nomi dei campi e delle tabelle, esempio di select e display dati che funziona benissimo in locale ma non sul DB online...
Così sul DB online non funziona ma in locale si cioè con un prepare statment ed una fetch ad OOP...
Codice PHP:
if ($datiUtente['profilo']=='amministratore'){
$sqlRigheAmministratore = $db->prepare("SELECT Ambito.nome as ambito,
Log.rowid,
Log.modulo,
Log.Data_inizio,
Log.Data_fine,
Log.Descrizione,
Log.H,
(SELECT Tipi_intervento.nome FROM Tipi_intervento WHERE Tipi_intervento.id = Log.Tipo_intervento_id ) as intervento,
(SELECT modulo.percorso FROM Modulo WHERE modulo.id = Log.modulo ) as modulo,
(SELECT HistoryUtenti.username FROM HistoryUtenti WHERE HistoryUtenti.id = Log.User_id ) as utente
FROM ambito,Log WHERE Ambito.id=Log.Ambito_id");
//$sqlRigheSviluppatore->bind_param('i',$datiUtente['idUtente']);
$risultati = $sqlRigheAmministratore->execute();
$sqlRigheAmministratore -> bind_result($ambito,
$rowid,
$modulo,
$data_inizio,
$data_fine,
$descrizione,
$oreImpiegate,
$intervento,
$modulo,
$utente);
while ($sqlRigheAmministratore -> fetch()){
$descrizioneSlashes = $descrizione;
$html = new Tpl("html/tabella_WebLog_Riga.html");
$html -> setTplVar(array(
"rowid" =>$rowid,
"descrizione" => $descrizione,
"descrizioneSlashes" => $descrizioneSlashes,
"data_inizio" => $data_inizio,
"data_fine" => $data_fine,
"oreImpiegate" => $oreImpiegate,
"ambito" => $ambito,
"intervento" => $intervento,
"modulo" => $modulo,
"idUser" => $utente
));
$html -> processTpl();
$html -> printTpl();
ob_flush();
}
}
INVECE NEL DB ONLINE FUNZIONA SOLO SE SCRIVO COSì IN MANIERA PROCEDURALE.....
Codice PHP:
if ($datiUtente['profilo']=='amministratore'){
$query=("SELECT ambito.nome as ambito,
log.rowid, log.modulo,
log.Data_inizio,
log.Data_fine,
log.Descrizione,
log.H,
(SELECT tipi_intervento.nome FROM tipi_intervento WHERE tipi_intervento.id = log.Tipo_intervento_id ) as intervento,
(SELECT modulo.percorso FROM modulo WHERE modulo.id = log.modulo ) as modulo,
(SELECT historyutenti.username FROM historyutenti WHERE historyutenti.id = log.User_id ) as utente FROM ambito,log WHERE ambito.id=log.Ambito_id");
$sql = mysqli_query($db,$query);
while ($row = mysqli_fetch_assoc($sql)) {print_r($row);
$rowid = $row['rowid'];
$descrizione=$row['Descrizione'];
$descrizioneSlashes=$row['Descrizione'];
$data_inizio=$row['Data_inizio'];
$data_fine=$row['Data_fine'];
$oreImpiegate=$row['H'];
$ambito=$row['ambito'];
$intervento=$row['intervento'];
$modulo=$row['modulo'];
$utente=$row['utente'];
//$descrizioneSlashes = $descrizione;
$html = new Tpl("html/tabella_WebLog_Riga.html");
$html -> setTplVar(array(
"rowid" =>$rowid,
"descrizione" => $descrizione,
"descrizioneSlashes" => $descrizioneSlashes,
"data_inizio" => $data_inizio,
"data_fine" => $data_fine,
"oreImpiegate" => $oreImpiegate,
"ambito" => $ambito,
"intervento" => $intervento,
"modulo" => $modulo,
"idUser" => $utente
));
$html -> processTpl();
$html -> printTpl();
ob_flush();
}
mysqli_free_result($sql);
}
PERCHE'....DEVO SETTARE IL DB IN QUALCHE MANIERA?Da notare anche il case sensitive nella select...Come mai?non posso usare
$db->prepare()....mi ritorna che $db non è un oggetto.Non capisco....invece con mysqli_query funziona...non capisco sembra che non riconosca l'OOP dell'estensione mysqli..
Ps:rettifico ho provato a rifare il login e non si connette...fino a due secondi fa il login andava...adesso non va neanche quello....ed anche la convalida login puta caso usa la OOP di mysqli...CHE SUCCEDE?