private function getTableMeta() { $result = $pdo->query("SHOW COLUMNS FROM " . quoteName($table)); $result->setFetchMode(PDO::FETCH_ASSOC); $meta = array(); foreach ($result as $row) { $meta[$row['field']] = array('pk' => $row['key'] == 'PRI', 'type' => $row['type']); } print_r($meta); return $meta; }
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); switch ($pdo->getAttribute(PDO::ATTR_DRIVER_NAME)) { case 'mysql': $nameOpening = $nameClosing = '`'; break; case 'mssql': $nameOpening = '['; $nameClosing = ']'; break; default: $nameOpening = $nameClosing = '"'; break; } function quoteName($name) { return $nameOpening . str_replace($nameClosing, $nameClosing . $nameClosing, $name) . $nameClosing; } $result = $pdo->query("SHOW COLUMNS FROM " . quoteName($table)); $result->setFetchMode(PDO::FETCH_ASSOC); $meta = array(); foreach ($result as $row) { $meta[$row['field']] = array('pk' => $row['key'] == 'PRI', 'type' => $row['type']); } $obj = new stdClass(); foreach ($meta as $key => $value) { $obj->{$key} = $value; } print_r($obj); //return $meta; print_r($meta);
public static function checkDeliveryPriceByWeight($carrier_id, $totalWeight, $zone_id) { $cache_key = $carrier_id . '_' . $totalWeight . '_' . $zone_id; if (!isset(self::$price_by_weight2[$cache_key])) { $db = JFactory::getDBO(); $query = "SELECT delivery." . $db->quoteName('price') . " FROM " . $db->quoteName('#__jeproshop_delivery') . " AS delivery LEFT JOIN "; $query .= $db->quoteName('#__jeproshop_range_weight') . " AS range_weight ON delivery." . $db->quoteName('range_weight_id') . " = range_weight."; $query .= $db->quoteName('range_weight_id') . " WHERE delivery." . $db->quoteName('zone_id') . " = " . (int) $zone_id . " AND " . (double) $totalWeight; $query .= " >= range_weight." . $db->quoteName('delimiter1') . " AND " . (double) $totalWeight . " < range_weight." . $db->quoteName('delimiter2'); $query .= " AND delivery." . $db->quoteName('carrier_id') . " = " . (int) $carrier_id . JeproshopCarrierModelCarrier::sqlDeliveryRangeShop('range_weight'); $query .= " ORDER BY range_weight." . $db > quoteName('delimiter1') . " ASC"; $db->setQuery($query); $result = $db->loadObject(); self::$price_by_weight2[$cache_key] = isset($result->price); } return self::$price_by_weight2[$cache_key]; }