Проблемма с Обьектом

DioNiR

Новичок
Проблемма с Обьектом

Проблема такова если передавать то что выдал запрос мускула функции mysql_query в обьект то по ошибочном запоросе работае продолжается. Если же передать в обыную переменную то выведет ошибку.

Сам метод:
PHP:
function sql_query($query,$id,$file = 'nofile') {
    if ($this->connect_id) {
        $this->query = $query;
        $this->query_id = mysql_query($query, $id) or die(mysql_errno().': '.mysql_error());
        $this->query_count++;
        if ( $this->query_id ) return $this->query_id;
    }
    return false;
}
В ходе тестирования я узнал что если в обьект $this->query_id с в этом методе функционирует то or die не срабатывает при любом запросе мускула.
Если же написать так:

PHP:
function sql_query($query,$id,$file = 'nofile') {
    if ($this->connect_id) {
        $this->query = $query;
        $result = mysql_query($query, $id) or die(mysql_errno().': '.mysql_error());
        $this->query_count++;
        if ($result ) return $result;
    }
    return false;
}
То если запрос ошибочный то выведет ошибку как пологается.

Собственно почему так?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
DioNiR
1. При таких странных "глюках". Принято сообщать конфигурацию

2. Методы в обоих случаях одинаково в рабочем состоянии.
Apache/1.3.37/PHP/4.4.6
Apache/1.3.37/PHP/5.2.1

PHP:
<?php
class My{
    function sql_query($query,$id,$file = 'nofile') { 
            $this->query_id = mysql_query($query, $id) or die(mysql_errno().': '.mysql_error());
            print_r (mysql_fetch_array($this->query_id));
    }
    function sql_query2($query,$id,$file = 'nofile') { 
        $result = mysql_query($query, $id) or die(mysql_errno().': '.mysql_error()); 
        print_r (mysql_fetch_array($result));
    }
}

$query = 'SELECT COUNT(*) FROM `a`';
$a = new My();
$a->sql_query($query,$lnk,$file = 'nofile');
$a->sql_query2($query,$lnk,$file = 'nofile');

$query = 'Invalid Query';
$b = new My();
//$b->sql_query($query,$lnk,$file = 'nofile');
//$b->sql_query2($query,$lnk,$file = 'nofile');
?>
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Одним словом
если "ничего не работает" -
Поищите на bugs.php.net
 

DioNiR

Новичок
Собственно весь класс.
PHP:
	class database_class {
		var $connect_id;
		var $query_id;
		var $query_count = 0;
		var $query;

		function database($server, $user, $passw, $db_name) {
			if (!empty($db_name)) {
				$this->connect_id = mysql_connect($server, $user, $passw,true);
				if ($this->connect_id)
				{
					if (mysql_select_db($db_name, $this->connect_id))
					{
						return $this->connect_id;
					}
				}
			}
			return false;
		}
		
		//Завершение соединения с БД
		function sql_close() {
			if($this->connect_id) {
				if($this->query_id) mysql_free_result($this->query_id);
				if (@mysql_close($this->connect_id)) return true;
			}
			return false;
		}
		
		function sql_query($query,$id,$file = 'nofile') {
			if ($this->connect_id) {
				$this->query = $query;
				$this->query_id = mysql_query($query, $id) or die(mysql_errno().': '.mysql_error());
				$this->query_count++;
				if ($this->query_id) return $this->query_id;
			}
			return false;
		}
		
		//Выбор данных
		function sql_fetchrow($query_id = 0) {
			if ($query_id == 0) $query_id = $this->query_id;
			if ($query_id) {
				$row = mysql_fetch_array($query_id);
				if ($row) return $row;
			}
			return false;
		}

		//Число результатов
		function sql_numrows($query_id = 0) {
			if ($query_id == 0) $query_id = $this->query_id;
			if ($query_id) {
				$num_rows = mysql_num_rows($query_id);
				return intval($num_rows);
			}
			return false;
		}
	}
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
DioNiR
1. Скрипт за Вас никто отлаживать не будет.
2. Вы вставили "вагон" методов. А реализация функционала где?
 
Сверху