Link to database cannot be established: SQLSTATE[HY000] [2002] Connection timed out
at line 136 in file classes/db/DbPDO.php
131. public function connect()
132. {
133. try {
134. $this->link = $this->getPDO($this->server, $this->user, $this->password, $this->database, 5);
135. } catch (PDOException $e) {
136. throw new PrestaShopException('Link to database cannot be established: ' . $e->getMessage());
137. }
138.
139. $this->link->exec('SET SESSION sql_mode = \'\'');
140.
141. return $this->link;
374. }
375.
376. $this->result = $this->_query($sql);
377.
378. if (!$this->result && $this->getNumberError() == 2006) {
379. if ($this->connect()) {
380. $this->result = $this->_query($sql);
381. }
382. }
383.
384. if (_PS_DEBUG_SQL_) {
658.
659. return $result;
660. }
661. }
662.
663. $this->result = $this->query($sql);
664. if (!$this->result) {
665. $result = false;
666. } else {
667. $result = $this->nextRow($this->result);
668. }
Argument [0] SELECT * FROM `ps_currency` a LEFT JOIN `ps_currency_lang` `b` ON a.`id_currency` = b.`id_currency` AND b.`id_lang` = 1 LEFT JOIN `ps_currency_shop` `c` ON a.`id_currency` = c.`id_currency` AND c.`id_shop` = 1 WHERE (a.`id_currency` = 1) LIMIT 1
70. // Get shop informations
71. if (Shop::isTableAssociated($entity_defs['table'])) {
72. $sql->leftJoin($entity_defs['table'] . '_shop', 'c', 'a.`' . bqSQL($entity_defs['primary']) . '` = c.`' . bqSQL($entity_defs['primary']) . '` AND c.`id_shop` = ' . (int) $id_shop);
73. }
74.
75. if ($object_datas = Db::getInstance()->getRow($sql)) {
76. if (!$id_lang && isset($entity_defs['multilang']) && $entity_defs['multilang']) {
77. $sql = 'SELECT *
78. FROM `' . bqSQL(_DB_PREFIX_ . $entity_defs['table']) . '_lang`
79. WHERE `' . bqSQL($entity_defs['primary']) . '` = ' . (int) $id
80. . (($id_shop && $entity->isLangMultishop()) ? ' AND `id_shop` = ' . (int) $id_shop : '');
Argument [0] SELECT * FROM `ps_currency` a LEFT JOIN `ps_currency_lang` `b` ON a.`id_currency` = b.`id_currency` AND b.`id_lang` = 1 LEFT JOIN `ps_currency_shop` `c` ON a.`id_currency` = c.`id_currency` AND c.`id_shop` = 1 WHERE (a.`id_currency` = 1) LIMIT 1
259. $this->id_shop = Context::getContext()->shop->id;
260. }
261.
262. if ($id) {
263. $entity_mapper = ServiceLocator::get('\\PrestaShop\\PrestaShop\\Adapter\\EntityMapper');
264. $entity_mapper->load($id, $id_lang, $this, $this->def, $this->id_shop, self::$cache_objects);
265. }
266. }
267.
268. protected function trans($id, array $parameters = [], $domain = null, $locale = null)
269. {
Argument [0] 1 Argument [1] 1 Argument [2] Currency Object ( [id] => [name] => [localizedNames:protected] => [iso_code] => [iso_code_num] => [numeric_iso_code] => [conversion_rate] => [deleted] => 0 [unofficial] => [modified] => [active] => [sign] => [symbol] => [localizedSymbols:CurrencyCore:private] => [format] => [blank] => [decimals] => [precision] => [pattern] => [localizedPatterns:CurrencyCore:private] => [webserviceParameters:protected] => Array ( [objectsNodeName] => currencies [fields] => Array ( [names] => Array ( [getter] => getLocalizedNames [i18n] => 1 ) [name] => Array ( [getter] => getName [modifier] => Array ( [http_method] => 6 [modifier] => setNameForWebservice ) ) [symbol] => Array ( [getter] => getLocalizedSymbols ) [iso_code] => Array ( [modifier] => Array ( [http_method] => 6 [modifier] => setIsoCodeForWebService ) ) ) ) [prefix] => [suffix] => [id_lang:protected] => 1 [id_shop:protected] => 1 [id_shop_list] => Array ( ) [get_shop_from_context:protected] => 1 [table:protected] => currency [identifier:protected] => id_currency [fieldsRequired:protected] => Array ( [0] => iso_code [1] => conversion_rate ) [fieldsSize:protected] => Array ( [iso_code] => 3 [numeric_iso_code] => 3 ) [fieldsValidate:protected] => Array ( [iso_code] => isLanguageIsoCode [numeric_iso_code] => isNumericIsoCode [precision] => isInt [conversion_rate] => isUnsignedFloat [deleted] => isBool [active] => isBool [unofficial] => isBool [modified] => isBool ) [fieldsRequiredLang:protected] => Array ( ) [fieldsSizeLang:protected] => Array ( [name] => 255 [symbol] => 255 [pattern] => 255 ) [fieldsValidateLang:protected] => Array ( [name] => isGenericName ) [tables:protected] => Array ( ) [image_dir:protected] => [image_format:protected] => jpg [translator:protected] => [def:protected] => Array ( [table] => currency [primary] => id_currency [multilang] => 1 [fields] => Array ( [iso_code] => Array ( [type] => 3 [validate] => isLanguageIsoCode [required] => 1 [size] => 3 ) [numeric_iso_code] => Array ( [type] => 3 [validate] => isNumericIsoCode [size] => 3 ) [precision] => Array ( [type] => 1 [validate] => isInt ) [conversion_rate] => Array ( [type] => 4 [validate] => isUnsignedFloat [required] => 1 [shop] => 1 ) [deleted] => Array ( [type] => 2 [validate] => isBool ) [active] => Array ( [type] => 2 [validate] => isBool ) [unofficial] => Array ( [type] => 2 [validate] => isBool ) [modified] => Array ( [type] => 2 [validate] => isBool ) [name] => Array ( [type] => 3 [lang] => 1 [validate] => isGenericName [size] => 255 ) [symbol] => Array ( [type] => 3 [lang] => 1 [size] => 255 ) [pattern] => Array ( [type] => 3 [lang] => 1 [size] => 255 ) ) [classname] => Currency [associations] => Array ( [l] => Array ( [type] => 2 [field] => id_currency [foreign_field] => id_currency ) ) ) [update_fields:protected] => [force_id] => ) Argument [3] Array ( [table] => currency [primary] => id_currency [multilang] => 1 [fields] => Array ( [iso_code] => Array ( [type] => 3 [validate] => isLanguageIsoCode [required] => 1 [size] => 3 ) [numeric_iso_code] => Array ( [type] => 3 [validate] => isNumericIsoCode [size] => 3 ) [precision] => Array ( [type] => 1 [validate] => isInt ) [conversion_rate] => Array ( [type] => 4 [validate] => isUnsignedFloat [required] => 1 [shop] => 1 ) [deleted] => Array ( [type] => 2 [validate] => isBool ) [active] => Array ( [type] => 2 [validate] => isBool ) [unofficial] => Array ( [type] => 2 [validate] => isBool ) [modified] => Array ( [type] => 2 [validate] => isBool ) [name] => Array ( [type] => 3 [lang] => 1 [validate] => isGenericName [size] => 255 ) [symbol] => Array ( [type] => 3 [lang] => 1 [size] => 255 ) [pattern] => Array ( [type] => 3 [lang] => 1 [size] => 255 ) ) [classname] => Currency [associations] => Array ( [l] => Array ( [type] => 2 [field] => id_currency [foreign_field] => id_currency ) ) ) Argument [4] 1 Argument [5] 1
241. * @param false|null $idLang if null or false, default language will be used
242. * @param int|null $idShop
243. */
244. public function __construct($id = null, $idLang = null, $idShop = null)
245. {
246. parent::__construct($id, $idLang, $idShop);
247.
248. if ($this->iso_code) {
249. // As the CLDR used to return a string even if in multi shop / lang,
250. // We force only one string to be returned
251. if (empty($idLang)) {
Argument [0] 1 Argument [1] 1 Argument [2]
96.
97. if (empty($idLang)) {
98. $idLang = $this->configuration->get('PS_LANG_DEFAULT');
99. }
100.
101. return new Currency($currencyId, $idLang);
102. }
103.
104. /**
105. * @param string $isoCode
106. * @param string $locale
Argument [0] 1 Argument [1] 1
109. */
110. public function getCurrencyByIsoCodeAndLocale($isoCode, $locale)
111. {
112. $idLang = Language::getIdByLocale($locale, true);
113.
114. return $this->getCurrencyByIsoCode($isoCode, $idLang);
115. }
116.
117. /**
118. * {@inheritdoc}
119. */
Argument [0] EUR Argument [1] 1
101. throw new LocalizationException('First parameter must be an instance of ' . LocalizedCurrencyId::class);
102. }
103.
104. $localeCode = $currencyDataId->getLocaleCode();
105. $currencyCode = $currencyDataId->getCurrencyCode();
106. $currencyEntity = $this->dataProvider->getCurrencyByIsoCodeAndLocale($currencyCode, $localeCode);
107.
108. if (null === $currencyEntity) {
109. return null;
110. }
111.
Argument [0] EUR Argument [1] fr-FR
85. *
86. * @throws DataLayerException
87. */
88. public function read($id)
89. {
90. $data = $this->doRead($id);
91.
92. // If nothing found, ask lower layer
93. if (null === $data) {
94. $data = $this->propagateRead($id);
95.
Argument [0] PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId Object ( [currencyCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => EUR [localeCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => fr-FR )
145. * @throws DataLayerException
146. */
147. protected function propagateRead($field)
148. {
149. if (isset($this->lowerDataLayer)) {
150. return $this->lowerDataLayer->read($field);
151. }
152.
153. return null;
154. }
155.
Argument [0] PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId Object ( [currencyCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => EUR [localeCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => fr-FR )
89. {
90. $data = $this->doRead($id);
91.
92. // If nothing found, ask lower layer
93. if (null === $data) {
94. $data = $this->propagateRead($id);
95.
96. // If nothing was found deeper, there is nothing more to do
97. if (null === $data) {
98. return null;
99. }
Argument [0] PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId Object ( [currencyCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => EUR [localeCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => fr-FR )
62. /**
63. * {@inheritdoc}
64. */
65. public function getLocalizedCurrencyData(LocalizedCurrencyId $localizedCurrencyId)
66. {
67. return $this->topLayer->read($localizedCurrencyId);
68. }
69.
70. /**
71. * Is this currency available ?
72. * (an available currency is not deleted AND is active).
Argument [0] PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId Object ( [currencyCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => EUR [localeCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => fr-FR )
105. */
106. private function formatCurrenciesData(array $currencyCodes, $localeCode)
107. {
108. $currenciesData = [];
109. foreach ($currencyCodes as $currencyCode) {
110. $currenciesData[] = $this->getLocalizedCurrencyData(new LocalizedCurrencyId($currencyCode, $localeCode));
111. }
112.
113. return $currenciesData;
114. }
115. }
Argument [0] PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId Object ( [currencyCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => EUR [localeCode:PrestaShop\PrestaShop\Core\Localization\Currency\LocalizedCurrencyId:private] => fr-FR )
92. /**
93. * {@inheritdoc}
94. */
95. public function getAllInstalledCurrenciesData($localeCode)
96. {
97. return $this->formatCurrenciesData($this->installedDataLayer->getAllInstalledCurrencyIsoCodes(), $localeCode);
98. }
99.
100. /**
101. * @param array $currencyCodes
102. * @param string $localeCode
Argument [0] Array ( [0] => EUR ) Argument [1] fr-FR
82. /**
83. * {@inheritdoc}
84. */
85. public function getAllInstalledCurrencies($localeCode)
86. {
87. return $this->createCurrenciesFromData($this->dataSource->getAllInstalledCurrenciesData($localeCode));
88. }
89.
90. /**
91. * @param array $currenciesData
92. *
Argument [0] fr-FR
202. $cldrLocale = $this->cldrLocaleRepository->getLocale($localeCode);
203. if (null === $cldrLocale) {
204. throw new LocalizationException('CLDR locale not found for locale code "' . $localeCode . '"');
205. }
206.
207. $currencies = $this->currencyRepository->getAllInstalledCurrencies($localeCode);
208.
209. $priceSpecifications = new PriceSpecificationMap();
210. foreach ($currencies as $currency) {
211. // Build the spec
212. $thisPriceSpecification = (new SpecificationFactory())->buildPriceSpecification(
Argument [0] fr-FR
145. {
146. if (!isset($this->locales[$localeCode])) {
147. $this->locales[$localeCode] = new Locale(
148. $localeCode,
149. $this->getNumberSpecification($localeCode),
150. $this->getPriceSpecifications($localeCode),
151. new NumberFormatter($this->roundingMode, $this->numberingSystem)
152. );
153. }
154.
155. return $this->locales[$localeCode];
Argument [0] fr-FR
191. $this->container = $this->buildContainer();
192. }
193.
194. $localeRepo = $this->get(self::SERVICE_LOCALE_REPOSITORY);
195. $this->context->currentLocale = $localeRepo->getLocale(
196. $this->context->language->getLocale()
197. );
198.
199. Hook::exec(
200. 'actionControllerInitAfter',
201. [
Argument [0] fr-FR
278. return;
279. }
280.
281. self::$initialized = true;
282.
283. parent::init();
284.
285. // enable Symfony error handler if debug mode enabled
286. $this->initDebugguer();
287.
288. // If current URL use SSL, set it true (used a lot for module redirect)
87.
88. if (!Validate::isLoadedObject($this->category) || !$this->category->active) {
89. Tools::redirect('index.php?controller=404');
90. }
91.
92. parent::init();
93.
94. if (!$this->category->checkAccess($this->context->customer->id)) {
95. header('HTTP/1.1 403 Forbidden');
96. header('Status: 403 Forbidden');
97. $this->errors[] = $this->trans('You do not have access to this category.', [], 'Shop.Notifications.Error');
282. /**
283. * Starts the controller process (this method should not be overridden!).
284. */
285. public function run()
286. {
287. $this->init();
288. if ($this->checkAccess()) {
289. // setMedia MUST be called before postProcess
290. if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {
291. $this->setMedia();
292. }
513. if (isset($params_hook_action_dispatcher)) {
514. Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
515. }
516.
517. // Running controller
518. $controller->run();
519.
520. // Execute hook dispatcher after
521. if (isset($params_hook_action_dispatcher)) {
522. Hook::exec('actionDispatcherAfter', $params_hook_action_dispatcher);
523. }
23. * @copyright Since 2007 PrestaShop SA and Contributors
24. * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
25. */
26.
27. require dirname(__FILE__).'/config/config.inc.php';
28. Dispatcher::getInstance()->dispatch();