Jump to content
Sign in to follow this  
nazarzn

Ошибки при обновлении страниц сайта Warning: mysql_query

Recommended Posts

Здравствуйте.

Есть проблема при обновлении страниц сайта выдает вот что:

Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 15

Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 16

Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 17

Notice: Trying to get property of non-object in /home/motobl01/dom.net.ua/www/index.php on line 54

Notice: Trying to get property of non-object in /home/motobl01/dom.net.ua/www/index.php on line 63

Warning: Invalid argument supplied for foreach() in /home/motobl01/dom.net.ua/www/index.php on line 63

Notice: Trying to get property of non-object in /home/motobl01/dom.net.ua/www/index.php on line 71

 

 

PHP програмист на форуме ответил, "что то сломалось", но что не уточнил.

Помогите разобраться, я не програмист, а просто SEOшник.

Share this post


Link to post
Share on other sites

Для начала укажите версию ИМ и покажите конструктор класса MySQL в файле system\database\mysql.php, с номерами строк (15, 16 и 17)

Share this post


Link to post
Share on other sites

Спасибо что обратили свое внимание на мою проблему

Скажите что такое версия ИМ?

Вот строки

mysql_query("SET CHARACTER SET utf8", $this->link);

mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->link);

mysql_query("SET SQL_MODE = ''", $this->link);

Share this post


Link to post
Share on other sites

Версия ИМ - это номер версии используемого интернет-магазина.

 

У меня 1.5.5.1.2. У нее в конструкторе класса MySQL такие строки

14 mysql_query("SET NAMES 'utf8'", $this->link);
15 mysql_query("SET CHARACTER SET utf8", $this->link);
16 mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->link);
17 mysql_query("SET SQL_MODE = ''", $this->link);

т.е. система должна была "ругаться" на 4 строки, а не на 3, как у Вас. Поэтому я и спросил номер версии и ВЕСЬ код конструктора __construct

Share this post


Link to post
Share on other sites

Версия ИМ - OcShop 1.5.6

<?php
final class DBMySQL {
	private $link;

	public function __construct($hostname, $username, $password, $database) {
		if (!$this->link = mysql_connect($hostname, $username, $password)) {
			trigger_error('Error: Could not make a database link using ' . $username . '@' . $hostname);
		}

		if (!mysql_select_db($database, $this->link)) {
			trigger_error('Error: Could not connect to database ' . $database);
		}

		mysql_query("SET NAMES 'utf8'", $this->link);
		mysql_query("SET CHARACTER SET utf8", $this->link);
		mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->link);
		mysql_query("SET SQL_MODE = ''", $this->link);
	}

	public function query($sql) {
		if ($this->link) {
			$resource = mysql_query($sql, $this->link);

			if ($resource) {
				if (is_resource($resource)) {
					$i = 0;

					$data = array();

					while ($result = mysql_fetch_assoc($resource)) {
						$data[$i] = $result;

						$i++;
					}

					mysql_free_result($resource);

					$query = new stdClass();
					$query->row = isset($data[0]) ? $data[0] : array();
					$query->rows = $data;
					$query->num_rows = $i;

					unset($data);

					return $query;	
				} else {
					return true;
				}
			} else {
				trigger_error('Error: ' . mysql_error($this->link) . '<br />Error No: ' . mysql_errno($this->link) . '<br />' . $sql);
				exit();
			}
		}
	}

	public function escape($value) {
		if ($this->link) {
			return mysql_real_escape_string($value, $this->link);
		}
	}

	public function countAffected() {
		if ($this->link) {
			return mysql_affected_rows($this->link);
		}
	}

	public function getLastId() {
		if ($this->link) {
			return mysql_insert_id($this->link);
		}
	}

	public function __destruct() {
		if ($this->link) {
			mysql_close($this->link);
		}
	}
}
?>

Share this post


Link to post
Share on other sites

Я отправил весь код, может так вам легче будет понять в чем проблема

Share this post


Link to post
Share on other sites

Странно, что нет ошибки в строке 14. Вы лог ошибок в начальном посте ПОЛНОСТЬЮ привели?

 

В строку 13 (она сейчас пустая) ВРЕМЕННО вставьте

 

echo $this->link;
 
Покажите сообщение в начале страницы (оно будет длинным и собьется кодировка, но это - ВРЕМЕННО!)

Share this post


Link to post
Share on other sites

Нет, вот отсылаю вам полный лог 

Warning: mysql_connect(): User 'motobl01_dom' has exceeded the 'max_user_connections' resource (current value: 2) in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 6

Notice: Error: Could not make a database link using motobl01_dom@motobl01.mysql.ukraine.com.ua in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 7

Warning: mysql_select_db() expects parameter 2 to be resource, boolean given in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 10

Notice: Error: Could not connect to database motobl01_dom in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 11

Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 14

Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 15

Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 16

Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 17

Notice: Trying to get property of non-object in /home/motobl01/dom.net.ua/www/index.php on line 54

Notice: Trying to get property of non-object in /home/motobl01/dom.net.ua/www/index.php on line 63

Warning: Invalid argument supplied for foreach() in /home/motobl01/dom.net.ua/www/index.php on line 63

Notice: Trying to get property of non-object in /home/motobl01/dom.net.ua/www/index.php on line 71

 

Спасибо огромное что помогаете мне с проблемой

Share this post


Link to post
Share on other sites

Warning: mysql_connect(): User 'motobl01_dom' has exceeded the 'max_user_connections' resource (current value: 2) in /home/motobl01/dom.net.ua/www/system/database/mysql.php on line 6

 

Вот с этого и надо было начинать :)) Пользователь пытается установить больше подключений, чем ему разрешено

 

Обращайтесь к хостеру, чтобы поставил для max_user_connections значение 0 или достаточно большое значение, а не 2, как сейчас

 

Или посмотрите, есть ли у Вас доступ к файлу  my.cnf. Тогда исправьте самостоятельно.

Share this post


Link to post
Share on other sites

Можно попробовать еще и такой вариант.

 

После строки 

  1. public function __construct($hostname, $username, $password, $database) {

    вставить 

mysql_close();

Сам не пробовал :)

Share this post


Link to post
Share on other sites

А что это должно дать? Опишите в паре слов, а то я не програмист и не могу понять как должна работать эта строка.

Share this post


Link to post
Share on other sites

Предполагаю, что Ваша проблема в том, что открытое подключение не закрывается в нужном месте -> число подключений растет, растет....

А эта команда принудительно закрывает все ранее открытые подключения. Далее открывается новое, которое будет единственным.

Share this post


Link to post
Share on other sites

кол-во подключений не растет - разрешено всего 2 одновременных подключения

Warning: mysql_connect(): User 'motobl01_dom' has exceeded the 'max_user_connections' resource (current value: 2)...
это маразм.

если у вас не свой сервер (который вы или кто-то "недонастроил") - уматывать от этого феерического хостера надо, как от пожара.

Share this post


Link to post
Share on other sites

кол-во подключений не растет

 

ОК, поправлюсь: ПЫТАЕТСЯ расти - сначала 1, потом 2, потом ... всё, ошибка.

 

Если ограничения нет (max_user_connections=0), то будет и 3, и 4, и 100500. А это не есть хорошо.

Share this post


Link to post
Share on other sites

Спасибо всем за ответы. 

Теперь я понял в чем проблема.

Постараюсь решить все с хостером.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.