我有Presta,我喜欢它但是...... 现在我得到了这个奇怪的错误:
错误的SQL查询磁盘已满(/ tmp / #sql_58f_0);等待某人自由 一些空间...
我搜索了很多,但没有找到任何解决方案。
在我的产品领域添加EAN代码后,我的商店显示:
此时没有特色产品。
在此之前,所有人看起来都很好。 我恢复了一个旧的备份(从2个月前开始)并注意到它已经有了相同的SQL错误,在我添加了一个EAN代码后,我看到了相同的没有特色产品。
不确定恢复是否将商店重新置于100旧状态,但是使用ean代码我有一个完全非工作的商店。 即使删除它们也无法解决我的问题。
我打开调试并收到了结果:
{PrestaShopDatabaseException]
Disk full (/tmp/#sql_58f_0); waiting for someone to free some space...
SELECT
a.`id_category`, `name`, `description`, sa.`position` AS `position`, `active`
, sa.position position
FROM `ps_category` a
LEFT JOIN `ps_category_lang` b ON (b.`id_category` = a.`id_category` AND b.`id_lang` = 1 AND b.`id_shop` = 1)
LEFT JOIN `ps_category_shop` sa ON (a.`id_category` = sa.`id_category` AND sa.id_shop = 1)
WHERE 1 AND `id_parent` = 2
ORDER BY sa.`position` ASC LIMIT 0, 50
在文件类/ db / Db.php中的第791行:
786. if ($webservice_call && $errno) {
787. $dbg = debug_backtrace();
788. WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
789. } elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) {
790. if ($sql) {
**791. throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');**
792. }
793.
794. throw new PrestaShopDatabaseException($this->getMsgError());
795. }
796. }
DbCore->displayError - [line 425 - classes/db/Db.php] - [1 Arguments]
420. $this->result = $this->_query($sql);
421. }
422. }
423.
424. if (_PS_DEBUG_SQL_) {
**425. $this->displayError($sql);**
426. }
427.
428. return $this->result;
429. }
430.
DbCore->query - [line 643 - classes/db/Db.php] - [1 Arguments]
Argument [0]
SELECT
a.`id_category`, `name`, `description`, sa.`position` AS `position`, `active`
, sa.position position
FROM `ps_category` a
LEFT JOIN `ps_category_lang` b ON (b.`id_category` = a.`id_category` AND b.`id_lang` = 1 AND b.`id_shop` = 1)
LEFT JOIN `ps_category_shop` sa ON (a.`id_category` = sa.`id_category` AND sa.id_shop = 1)
WHERE 1 AND `id_parent` = 2
ORDER BY sa.`position` ASC LIMIT 0, 50
DbCore->executeS - [line 3212 - classes/controller/AdminController.php] - [3 Arguments]
3207. '.($this->_tmpTableFilter ? ' * FROM (SELECT ' : '').$this->_listsql.$sql_from.$sql_join.' WHERE 1 '.$sql_where.
3208. $sql_order_by.$sql_limit;
3209. $list_count = 'SELECT COUNT(*) AS `'._DB_PREFIX_.$this->table.'` '.$sql_from.$sql_join.' WHERE 1 '.$sql_where;
3210. }
3211.
**3212. $this->_list = Db::getInstance()->executeS($this->_listsql, true, false);**
3213.
3214. if ($this->_list === false) {
3215. $this->_list_error = Db::getInstance()->getMsgError();
3216. break;
3217. }
AdminControllerCore->getList - [line 253 - controllers/admin/AdminCategoriesController.php] - [6 Arguments]
248. return parent::renderList();
249. }
250.
251. public function getList($id_lang, $order_by = null, $order_way = null, $start = 0, $limit = null, $id_lang_shop = false)
252. {
**253. parent::getList($id_lang, $order_by, $order_way, $start, $limit, Context::getContext()->shop->id);**
254. // Check each row to see if there are combinations and get the correct action in consequence
255.
256. $nb_items = count($this->_list);
257. for ($i = 0; $i < $nb_items; $i++) {
258. $item = &$this->_list[$i];
AdminCategoriesControllerCore->getList - [line 2333 - classes/controller/AdminController.php] - [1 Arguments]
Argument [0]
1
AdminControllerCore->renderList - [line 248 - controllers/admin/AdminCategoriesController.php]
243. $this->tpl_list_vars['delete_category'] = true;
244. $this->tpl_list_vars['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
245. $this->tpl_list_vars['POST'] = $_POST;
246. }
247.
**248. return parent::renderList();**
249. }
250.
251. public function getList($id_lang, $order_by = null, $order_way = null, $start = 0, $limit = null, $id_lang_shop = false)
252. {
253. parent::getList($id_lang, $order_by, $order_way, $start, $limit, Context::getContext()->shop->id);
AdminCategoriesControllerCore->renderList - [line 2034 - classes/controller/AdminController.php]
2029. } elseif ($this->display == 'details') {
2030. $this->content .= $this->renderDetails();
2031. } elseif (!$this->ajax) {
2032. $this->content .= $this->renderModulesList();
2033. $this->content .= $this->renderKpis();
**2034. $this->content .= $this->renderList();**
2035. $this->content .= $this->renderOptions();
2036.
2037. // if we have to display the required fields form
2038. if ($this->required_database) {
2039. $this->content .= $this->displayRequiredFields();
AdminControllerCore->initContent - [line 199 - controllers/admin/AdminCategoriesController.php]
194. 'url_delete' => htmlentities($_SERVER['REQUEST_URI']),
195. 'boxes' => $this->boxes,
196. ));
197. }
198.
**199. parent::initContent();**
200. }
201.
202. public function setMedia()
203. {
204. parent::setMedia();
AdminCategoriesControllerCore->initContent - [line 189 - classes/controller/Controller.php]
184. if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {
185. $this->initHeader();
186. }
187.
188. if ($this->viewAccess()) {
**189. $this->initContent();**
190. } else {
191. $this->errors[] = Tools::displayError('Access denied.');
192. }
193.
194. if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className))) {
ControllerCore->run - [line 367 - classes/Dispatcher.php]
362. if (isset($params_hook_action_dispatcher)) {
363. Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
364. }
365.
366. // Running controller
**367. $controller->run();**
368. } catch (PrestaShopException $e) {
369. $e->displayMessage();
370. }
371. }
372.
DispatcherCore->dispatch - [line 58 - admin/index.php]
53. if (!isset($_REQUEST['controller']) && isset($_REQUEST['tab'])) {
54. $_REQUEST['controller'] = strtolower($_REQUEST['tab']);
55. }
56.
57. // Prepare and trigger admin dispatcher
**58. Dispatcher::getInstance()->dispatch();**
Google没有多大帮助。
你以前见过这个,我怎么能(或其他人)解决这个问题?
感谢您的反馈!
P.S。该域名是Giantjeans.com
答案 0 :(得分:0)
似乎在您的Web托管中,磁盘空间(在本例中为数据库大小)较少,或者SQL-server同时对数据库的请求过多。
因为Prestashop无法写入数据。为了解决问题,您需要检查服务器错误以了解确切原因。
建议您升级服务器并获得更多可用空间。