<?php
/**
* Plugin contatore di visite in php
* PHP + PDO
*
*/
// Debug Tools //
//preize($_SERVER);
//preize($_SESSION);
//preize($_GET);
//preize(PDO::getAvailableDrivers());
//preize($PDO);
// Se la query string è stata eseguita aggiungi un +1 al contatore
if (!isset($_SERVER['QUERY_STRING'])) {
echo 'La query string non è impostata <br />';
}
else {
echo 'La query string è: ' . $_SERVER['QUERY_STRING'] . '<br />';
//Connessione col PDO tramite try/catch
try {
$PDO = new DB($config['db']['type'], $config['db']['host'], $config['db']['name'], $config['db']['user'], $config['db']['passw']);
$PDO->setAttribute(PDO::ATTR_STATEMENT_CLASS, array( 'DBStatement', array($GLOBALS['db']) ) );
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
echo 'Errore: ' . $e->getMessage();
}
//lancio la query
if ($PDO = new DB($config['db']['type'], $config['db']['host'], $config['db']['name'], $config['db']['user'], $config['db']['passw'])) {
//avvio della transazione (disattivo auto commit)
$PDO->beginTransaction();
//inizializzo il parametro per la query per la join
$param = 'id_accesso';
//preparo la query
if ($join = $PDO->prepare("SELECT id_product FROM products AS A LEFT JOIN accessi AS B ON A.id_product=B. :id_accesso WHERE TRUE;")) {
$join->bindParam(':id_accesso', $param, PDO::PARAM_STR,50);
//se la prima query è stata eseguita procedo con la seconda
if ($join->execute()) {
//avvio la seconda query
$updatecounter = $PDO->prepare("UPDATE accessi SET conta = +1 WHERE id_product = id_accesso;");
$updatecounter->execute();
//creazione di un array dei risultati
$res = $join->fetchAll();
//visualizzo il risultato
preize($res);
//riattivo l'auto commit
$PDO->rollBack();
}
else {
//voglio visualizzare l'errore
die('Errore Query');
}
}
}
}