Перейти к содержанию
nazarzn

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

Рекомендуемые сообщения

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

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

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шник.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Вот строки

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

У меня 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Версия ИМ - 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);
		}
	}
}
?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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. Тогда исправьте самостоятельно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

После строки 

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

    вставить 

mysql_close();

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.