Jā, bez problēmām.
Šī ir funkcija kategoriju klasē kura pievieno kategoriju, bet arī izmantojot logu klasi pievieno jaunu ierakstu logos.
public static function Add($catName, $catDescr = "", $catImgURL = "", $catSubLevel = 0, $catSubID = 0)
{
try
{
$DBH = DBAccess::getDBH();
//Preparing our SQL Query
$values = array($catName, $catDescr, $catImgURL, $catSubLevel, $catSubID);
$STH = $DBH->prepare("INSERT INTO cat (catName, catDescr, catImg, catSubLevel, catSubID)
VALUES (?, ?, ?, ?, ?)");
//Excecuting SQL Query
$STH->execute($values);
//Cleaning up
$DBH = null;
$STH = null;
//Writing down log <-----------------------------
include "mLog.php";
Log::Add("Added category " . $catName);
//Returning true for user to know that it was successful
return true;
}
catch (PDOException $e)
{
//If we have error, we show it (it will be shown only if debug mode is enabled in db_config.php
echo $e->getMessage();
}
}
Šī ir funkcija, kas pievieno jaunu ierakstu logos. Šo funkciju izmanto ļoti bieži citos php failos...
public static function Add($action)
{
try
{
$DBH = DBAccess::getDBH();
//Getting user IP
$ip = $_SERVER['REMOTE_ADDR'];
//Getting time
$time = date('Y-m-d H:i:s');
//Preparing our SQL Query
$values = array($ip, $action, $time);
$STH = $DBH->prepare("INSERT INTO log (ip, action, time)
VALUES (?, ?, ?)");
//Excecuting SQL Query
$STH->execute($values);
//Cleaning up
$DBH = null;
$STH = null;
}
catch (PDOException $e)
{
echo $e->getMessage();
}
}
Kā redzi izpilda darbības ar datu bāzēm iekš darbībām ar datubāzēm, ja es netaisu singletonu man rodas scope errori, ja es visu laiku inkludēju dbaccess failu kurš taisa $DBH tad man taisās ļoti daudzas instances, kas nav īpaši produktīvi. Šis ir vienīgais risinājums kuru es zinu šai problēmai :)