public static function getTotalMaintenanceCosts($carID = null) { if (is_null($carID)) { $carID = MyCar::getDefaultCarID(); } $helper = new SqlHelper(); $query = new Query('select'); $sql = "SELECT\n\t" . $helper->getSumFunction('COST', 'SUM') . "\nFROM\n\t" . $helper->wrapQuotes(Tables\TsTable::getTableName()) . "\nWHERE\n\t" . $helper->wrapQuotes('MY_CAR_ID') . " = " . $carID; $query->setQueryBuildParts($sql); $res = $query->exec(); if ($ar_res = $res->fetch()) { return floatval($ar_res['SUM']); } else { return 0; } }
protected static function getTotalRepairPartsCosts($carID = null) { if (is_null($carID)) { $carID = MyCar::getDefaultCarID(); } $sqlHelper = new CoreLib\SqlHelper(); $fuelTable = Tables\RepairPartsTable::getTableName(); $query = new Query('select'); $sql = "SELECT\n\t" . "SUM(" . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('NUMBER') . " * " . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('COST') . ") AS SUMM\n" . "FROM\n\t" . $sqlHelper->wrapQuotes($fuelTable) . "\n" . "WHERE\n\t" . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('MY_CAR_ID') . " = " . $carID; $query->setQueryBuildParts($sql); $res = $query->exec(); if ($ar_res = $res->fetch()) { $fuelCosts = $ar_res['SUMM']; return floatval($fuelCosts); } else { return 0; } }
private static function getValues($tariffID, $date = null, $type = 'hourly') { if (is_null($date)) { $arDate = explode('.', date('d.m.Y')); } else { if ($date = DateHelper::validateDate($date)) { $arDate = explode('.', $date); } else { $arDate = explode('.', date('d.m.Y')); } } $query = new Query('select'); $sqlHelper = new SqlHelper(); $valuesHourlyTableName = ValuesHourlyTable::getTableName(); $sql = "SELECT " . $sqlHelper->getSumFunction("VALUE") . " , " . $sqlHelper->getSumFunction("COST"); if ($type == 'hourly') { $sql .= " , " . $sqlHelper->wrapQuotes("HOUR"); } if ($type == 'hourly' || $type == 'daily') { $sql .= " , " . $sqlHelper->wrapQuotes("DAY"); } if ($type == 'hourly' || $type == 'daily' || $type == 'monthly') { $sql .= " , " . $sqlHelper->wrapQuotes("MONTH"); } $sql .= " , " . $sqlHelper->wrapQuotes("YEAR"); $sql .= " FROM " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . " WHERE " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("TARIFF_ID") . " =" . intval($tariffID); if ($type == 'hourly') { $sql .= " AND " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("DAY") . " =" . intval($arDate[0]); } if ($type == 'hourly' || $type == 'daily') { $sql .= " AND " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("MONTH") . " =" . intval($arDate[1]); } if ($type == 'hourly' || $type == 'daily' || $type == 'monthly') { $sql .= " AND " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("YEAR") . " =" . intval($arDate[2]); } if ($type == 'hourly') { $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("HOUR") . " "; } elseif ($type == 'daily') { $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("DAY") . " "; } elseif ($type == 'monthly') { $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("MONTH") . " "; } elseif ($type == 'yearly') { $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("YEAR") . " "; } $query->setQueryBuildParts($sql); $res = $query->exec(); if ($res->getResult()) { $arResult = array(); $i = 0; while ($ar_res = $res->fetch()) { $arResult[$i] = array('SUM_VALUE' => round($ar_res['SUM_VALUE'], 2), 'SUM_COST' => round($ar_res['SUM_COST'], 2), 'YEAR' => intval($ar_res['YEAR'])); if (isset($ar_res['HOUR'])) { $arResult[$i]['HOUR'] = intval($ar_res['HOUR']); } if (isset($ar_res['DAY'])) { $arResult[$i]['DAY'] = intval($ar_res['DAY']); } if (isset($ar_res['MONTH'])) { $arResult[$i]['MONTH'] = intval($ar_res['MONTH']); } $i++; } return $arResult; } else { return false; } }
/** * Возвращает массив данных обо всех автомобилях * * @param bool $bActive * * @return array */ public static function getListCar($bActive = true) { $helper = new SqlHelper(); $sql = "SELECT\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('ID') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('ACTIVE') . " AS " . $helper->wrapQuotes('ACTIVE') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('SORT') . " AS " . $helper->wrapQuotes('SORT') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('NAME') . ",\n\t"; $sql .= $helper->wrapQuotes('brand') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('BRAND_ID') . ",\n\t"; $sql .= $helper->wrapQuotes('brand') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('BRAND_NAME') . ",\n\t"; $sql .= $helper->wrapQuotes('brand') . "." . $helper->wrapQuotes('CODE') . " AS " . $helper->wrapQuotes('BRAND_CODE') . ",\n\t"; $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('MODEL_ID') . ",\n\t"; $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('MODEL_NAME') . ",\n\t"; $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('BRANDS_ID') . " AS " . $helper->wrapQuotes('MODEL_BRANDS_ID') . ",\n\t"; $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('CODE') . " AS " . $helper->wrapQuotes('MODEL_CODE') . ",\n\t"; $sql .= $helper->wrapQuotes('gear') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('GEARBOX_ID') . ",\n\t"; $sql .= $helper->wrapQuotes('gear') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('GEARBOX_NAME') . ",\n\t"; $sql .= $helper->wrapQuotes('gear') . "." . $helper->wrapQuotes('CODE') . " AS " . $helper->wrapQuotes('GEARBOX_CODE') . ",\n\t"; $sql .= $helper->wrapQuotes('body') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('BODY_ID') . ",\n\t"; $sql .= $helper->wrapQuotes('body') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('BODY_NAME') . ",\n\t"; $sql .= $helper->wrapQuotes('body') . "." . $helper->wrapQuotes('CODE') . " AS " . $helper->wrapQuotes('BODY_CODE') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('YEAR') . " AS " . $helper->wrapQuotes('YEAR') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('VIN') . " AS " . $helper->wrapQuotes('VIN') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_NUMBER') . " AS " . $helper->wrapQuotes('CAR_NUMBER') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('ENGINE_CAPACITY') . " AS " . $helper->wrapQuotes('ENGINE_CAPACITY') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('INTERVAL_TS') . " AS " . $helper->wrapQuotes('INTERVAL_TS') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('COST') . " AS " . $helper->wrapQuotes('COST') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('MILEAGE') . " AS " . $helper->wrapQuotes('MILEAGE') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CREDIT') . " AS " . $helper->wrapQuotes('CREDIT') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CREDIT_COST') . " AS " . $helper->wrapQuotes('CREDIT_COST') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('DATE_OSAGO_END') . " AS " . $helper->wrapQuotes('DATE_OSAGO_END') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('DATE_GTO_END') . " AS " . $helper->wrapQuotes('DATE_GTO_END') . ",\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('DEFAULT') . " AS " . $helper->wrapQuotes('DEFAULT') . "\n"; $sql .= "FROM\n\t"; $sql .= $helper->wrapQuotes('ms_icar_my_car') . " AS " . $helper->wrapQuotes('car') . " ,\n\t"; $sql .= $helper->wrapQuotes('ms_icar_car_brand') . " AS " . $helper->wrapQuotes('brand') . " ,\n\t"; $sql .= $helper->wrapQuotes('ms_icar_car_model') . " AS " . $helper->wrapQuotes('model') . " ,\n\t"; $sql .= $helper->wrapQuotes('ms_icar_car_gearbox') . " AS " . $helper->wrapQuotes('gear') . " ,\n\t"; $sql .= $helper->wrapQuotes('ms_icar_car_body') . " AS " . $helper->wrapQuotes('body') . "\n"; $sql .= "WHERE\n\t"; if ($bActive) { $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('ACTIVE') . " = 'Y' AND\n\t"; } $sql .= $helper->wrapQuotes('brand') . "." . $helper->wrapQuotes('ID') . " = " . $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_BRANDS_ID') . " AND\n\t"; $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('ID') . " = " . $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_MODEL_ID') . " AND\n\t"; $sql .= $helper->wrapQuotes('gear') . "." . $helper->wrapQuotes('ID') . " = " . $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_GEARBOX_ID') . " AND\n\t"; $sql .= $helper->wrapQuotes('body') . "." . $helper->wrapQuotes('ID') . " = " . $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_BODY_ID') . "\n"; $sql .= "ORDER BY\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('SORT') . " ASC,\n\t"; $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('NAME') . " ASC"; $query = new Query('select'); $query->setQueryBuildParts($sql); $res = $query->exec(); $arResult = array(); $i = 0; while ($ar_res = $res->fetch()) { foreach ($ar_res as $key => $value) { if (!is_numeric($key)) { $arResult[$i][$key] = $value; } } $i++; } $arResult = static::fetchCarData($arResult); return $arResult; }
public static function checkTable() { /* ОСНОВНЫЕ ПРАВИЛА ХРАНЕНИЯ ДЕРЕВА КАТАЛОГОВ * * 1. Левый ключ ВСЕГДА меньше правого; * 2. Наименьший левый ключ ВСЕГДА равен 1; * 3. Наибольший правый ключ ВСЕГДА равен двойному числу узлов; * 4. Разница между правым и левым ключом ВСЕГДА нечетное число; * 5. Если уровень узла нечетное число то тогда левый ключ ВСЕГДА нечетное число, то же самое и для четных чисел; * 6. Ключи ВСЕГДА уникальны, вне зависимости от того правый он или левый; */ $bError = false; //$className = static::getClassName(); //TODO: Невозможно сравнивать с полем. Нужно доделать, чтобы можно было. См. коммент ниже /* $res1 = $className::getList(array( 'select' => array('ID'), 'filter' => array('LEFT_MARGIN'=>'RIGHT_MARGIN') )); */ $helper = new SqlHelper(); //1. Левый ключ ВСЕГДА меньше правого; //Если все правильно то результата работы запроса не будет, иначе, получаем список идентификаторов неправильных строк; $sql1 = "SELECT " . $helper->wrapQuotes('ID') . " FROM " . $helper->wrapQuotes(static::getTableName()) . " WHERE " . $helper->wrapQuotes('LEFT_MARGIN') . " >= " . $helper->wrapQuotes('RIGHT_MARGIN'); $query1 = new Query('select'); $query1->setQueryBuildParts($sql1); $res1 = $query1->exec(); if ($res1->getResult()) { while ($ar_res1 = $res1->fetch()) { $arResult['RULE1'][] = $ar_res1; } $bError = true; } //2. Наименьший левый ключ ВСЕГДА равен 1; //3. Наибольший правый ключ ВСЕГДА равен двойному числу узлов; //Получаем количество записей (узлов), минимальный левый ключ и максимальный правый ключ, проверяем значения. $sql2 = "SELECT COUNT(" . $helper->wrapQuotes('ID') . ") as COUNT, MIN(" . $helper->wrapQuotes('LEFT_MARGIN') . ") as MIN, MAX(" . $helper->wrapQuotes('RIGHT_MARGIN') . ") as MAX FROM " . $helper->wrapQuotes(static::getTableName()); $query2 = new Query('select'); $query2->setQueryBuildParts($sql2); $res2 = $query2->exec(); if ($ar_res2 = $res2->fetch()) { if ($ar_res2['MIN'] != 1) { $bError = true; $arResult['RULE2']['MIN'] = $ar_res2['MIN']; } $double = $ar_res2['COUNT'] * 2; if ($ar_res2['MAX'] != $double) { $bError = true; $arResult['RULE3']['COUNT'] = $ar_res2['COUNT']; $arResult['RULE3']['DOUBLE'] = $double; $arResult['RULE3']['MAX'] = $ar_res2['MAX']; } } else { $bError = true; $arResult['RULE2'] = false; $arResult['RULE3'] = false; } //4. Разница между правым и левым ключом ВСЕГДА нечетное число; //Если все правильно то результата работы запроса не будет, иначе, получаем список идентификаторов неправильных строк; $sql4 = "SELECT " . $helper->wrapQuotes('ID') . ", MOD((" . $helper->wrapQuotes('RIGHT_MARGIN') . " - " . $helper->wrapQuotes('LEFT_MARGIN') . ") / 2) AS REMAINDER FROM " . $helper->wrapQuotes(static::getTableName()) . " WHERE REMAINDER = 0"; $query4 = new Query('select'); $query4->setQueryBuildParts($sql4); $res4 = $query4->exec(); if ($res4->getResult()) { $bError = true; while ($ar_res4 = $res4->fetch()) { $arResult['RULE4'][] = $ar_res4; } } //5. Если уровень узла нечетное число то тогда левый ключ ВСЕГДА нечетное число, то же самое и для четных чисел; //Если все правильно то результата работы запроса не будет, иначе, получаем список идентификаторов неправильных строк; $sql5 = "SELECT " . $helper->wrapQuotes('ID') . ", MOD((" . $helper->wrapQuotes('LEFT_MARGIN') . " – " . $helper->wrapQuotes('DEPTH_LEVEL') . " + 2) / 2) AS REMAINDER FROM " . $helper->wrapQuotes(static::getTableName()) . " WHERE REMAINDER = 1"; $query5 = new Query('select'); $query5->setQueryBuildParts($sql5); $res5 = $query5->exec(); if ($res5->getResult()) { $bError = true; while ($ar_res5 = $res5->fetch()) { $arResult['RULE5'][] = $ar_res5; } } //6. Ключи ВСЕГДА уникальны, вне зависимости от того правый он или левый; /* Здесь, я думаю, потребуется некоторое пояснение запроса. Выборка по сути осуществляется из одной таблицы, но в разделе FROM эта таблица "виртуально" продублирована 3 раза: из первой мы выбираем все записи по порядку и начинаем сравнивать с записями второй таблицы (раздел WHERE) в результате мы получаем все записи неповторяющихся значений. Для того, что бы определить сколько раз запись не повторялась в таблице, производим группировку (раздел GROUP BY) и получаем число "не повторов" (COUNT(t1.id)). По условию, если все ключи уникальны, то число не повторов будет меньше на одну единицу чем общее количество записей. Для того, чтобы определить количество записей в таблице, берем максимальный правый ключ (MAX(t3.right_key)), так как его значение - двойное число записей, но так как в условии отбора для записи с максимальным правым ключом - максимальный правый ключ будет другим, вводится третья таблица, при этом число "неповторов" увеличивается умножением его на количество записей. SQRT(4*rep +1) - решение уравнения x^2 + x = rep. Если все правильно то результата работы запроса не будет, иначе, получаем список идентификаторов неправильных строк; */ $sql6 = "SELECT t1." . $helper->wrapQuotes('ID') . ", COUNT(t1." . $helper->wrapQuotes('ID') . ") AS rep, MAX(t3." . $helper->wrapQuotes('RIGHT_MARGIN') . ") AS max_right FROM " . $helper->wrapQuotes(static::getTableName()) . " AS t1, " . $helper->wrapQuotes(static::getTableName()) . " AS t2, " . $helper->wrapQuotes(static::getTableName()) . " AS t3 WHERE t1." . $helper->wrapQuotes('LEFT_MARGIN') . " <> t2." . $helper->wrapQuotes('LEFT_MARGIN') . " AND t1." . $helper->wrapQuotes('LEFT_MARGIN') . " <> t2." . $helper->wrapQuotes('RIGHT_MARGIN') . " AND t1." . $helper->wrapQuotes('RIGHT_MARGIN') . " <> t2." . $helper->wrapQuotes('LEFT_MARGIN') . " AND t1." . $helper->wrapQuotes('RIGHT_MARGIN') . " <> t2." . $helper->wrapQuotes('RIGHT_MARGIN') . " GROUP BY t1." . $helper->wrapQuotes('ID') . " HAVING max_right <> SQRT(4 * rep + 1) + 1"; $query6 = new Query('select'); $query6->setQueryBuildParts($sql6); $res6 = $query6->exec(); if ($res6->getResult()) { $bError = true; while ($ar_res6 = $res6->fetch()) { $arResult['RULE6'][] = $ar_res6; } } if ($bError) { return $arResult; } else { return false; } }
public static function checkTableLinks() { $bLinks = false; $helper = new SqlHelper(); $arLinks = static::getTableLinks(); $tableName = static::getTableName(); foreach ($arLinks as $field => $arLink) { $sql = "SELECT\n\t" . 't.' . $helper->wrapQuotes($field) . "\n"; $sql .= "FROM\n\t" . $helper->wrapQuotes($tableName) . " t"; $where = "WHERE\n\t"; $t = 0; $bFirst = true; foreach ($arLink as $tableName => $fieldName) { $t++; if ($bFirst) { $bFirst = false; } else { $where .= " AND\n\t"; } $sql .= ",\n\t"; $sql .= $helper->wrapQuotes($tableName) . " t" . $t; $where .= "t" . $t . "." . $helper->wrapQuotes($fieldName) . " = t." . $helper->wrapQuotes($field); } $sql .= "\n" . $where; $query = new Entity\Query("select"); $query->setQueryBuildParts($sql); $res = $query->exec(); if ($ar_res = $res->fetch()) { $bLinks = true; } } return $bLinks; }
private function sqlMassDelete($query = null) { try { if (is_null($query)) { throw new Exception\ArgumentNullException('query'); } } catch (Exception\ArgumentNullException $e) { $e->showException(); return false; } $helper = new Lib\SqlHelper(); $arMap = $query->getTableMap(); $primaryId = $query->getDeletePrimary(); $arTableLinks = $query->getTableLinks(); $tableName = $query->getTableName(); foreach ($arTableLinks as $field => $arLinked) { foreach ($arLinked as $linkTable => $linkField) { if (is_array($linkField)) { foreach ($linkField as $linkF) { $arRes = Lib\Tools::runTableClassFunction($linkTable, 'getListFunc', array(array('select' => array('ID'), 'filter' => array($linkF => $primaryId)))); if ($arRes) { foreach ($arRes as $delID) { $deleteQuery = new Query('delete'); $deleteQuery->setDeleteParams($delID, true, null, Lib\Tools::runTableClassFunction($linkTable, 'getTableMap'), Lib\Tools::runTableClassFunction($linkTable, 'getTableLinks')); $deleteQuery->exec(); } } } } else { $arRes = Lib\Tools::runTableClassFunction($linkTable, 'getListFunc', array(array('select' => array('ID'), 'filter' => array($linkField => $primaryId)))); if ($arRes) { foreach ($arRes as $delID) { $deleteQuery = new Query('delete'); $deleteQuery->setDeleteParams($delID, true, Lib\Tools::runTableClassFunction($linkTable, 'getTableName'), Lib\Tools::runTableClassFunction($linkTable, 'getTableMap'), Lib\Tools::runTableClassFunction($linkTable, 'getTableLinks')); $deleteQuery->exec(); } } } } } foreach ($arMap as $field => $objData) { if ($objData->isPrimary()) { $primaryField = $objData->getColumnName(); $primaryObj = $objData; break; } } $sql = "DELETE FROM " . $helper->wrapQuotes($tableName); $sql .= " WHERE " . $helper->wrapQuotes($tableName) . "."; $sql .= $helper->wrapQuotes($primaryField) . " = "; if ($primaryObj instanceof IntegerField || $primaryObj instanceof FloatField) { $sql .= $primaryId; } else { $sql .= "'" . $primaryId . "'"; } $sql .= " LIMIT 1"; $delQuery = new Query('delete'); $delQuery->setQueryBuildParts($sql); $res = $delQuery->exec(); }
/** * Возвращает количество израсходованного топлива * * @param int $carID * * @return float */ public static function getCarTotalSpentFuel($carID = null) { if (is_null($carID)) { $carID = MyCar::getDefaultCarID(); } $total = 0; $sqlHelper = new CoreLib\SqlHelper(); $fuelTable = Tables\FuelTable::getTableName(); $query = new Query('select'); $sql = "SELECT\n\t" . "SUM(" . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('LITER') . ") AS SUMM\n" . "FROM\n\t" . $sqlHelper->wrapQuotes($fuelTable) . "\n" . "WHERE\n\t" . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('MY_CAR_ID') . " = " . $carID; $query->setQueryBuildParts($sql); $res = $query->exec(); if ($ar_res = $res->fetch()) { $total = $ar_res['SUMM']; } return $total; }
public static function increasePointPopular($pointID = null) { try { if (is_null($pointID)) { throw new Exception\ArgumentNullException('pointID'); } } catch (Exception\ArgumentNullException $e) { $e->showException(); return false; } if (static::checkNeedIncreasePointPopular($pointID)) { $helper = new SqlHelper(); $query = new Query('update'); $sql = "UPDATE " . $helper->wrapQuotes(Tables\PointsTable::getTableName()) . " SET " . $helper->wrapQuotes('POPULAR') . " = " . $helper->wrapQuotes('POPULAR') . " + 1 WHERE ID = " . $pointID; $query->setQueryBuildParts($sql); $res = $query->exec(); if ($res->getResult()) { return true; } else { return false; } } }