Phantomouse
Новичок
Странная ошибка mysql_connect в классе
Приветствую!
Разбираю чужой код, который стабильно работал на прошлом хостинге, но упорно оказывается работать у меня дома, либо на Мастерхосте. Сайт просто не показывает никаких данных, в т.ч. и ошибок, что видимо обусловлено тем, что весь сайт построен на классах. Для отладки пробую запускать скрипты, содержащие классы не через движок, а по отдельности, чтобы отловить конкретные ошибки. Часть ошибок ушла при переходе с PHP4 на PHP5 (сейчас используется PHP5+MYSQL4.5, но пробовал и MYSQL5).Но одна из них ввела меня в ступор:
Код файла.
Ошибка:
Я не специалист в работе с классами, поэтому допускаю, что дело здесь стоит за какой-то их неизвестной мне особенностью, хотя в комплексе копия рабочего сайта работать отказывается
.
Приветствую!
Разбираю чужой код, который стабильно работал на прошлом хостинге, но упорно оказывается работать у меня дома, либо на Мастерхосте. Сайт просто не показывает никаких данных, в т.ч. и ошибок, что видимо обусловлено тем, что весь сайт построен на классах. Для отладки пробую запускать скрипты, содержащие классы не через движок, а по отдельности, чтобы отловить конкретные ошибки. Часть ошибок ушла при переходе с PHP4 на PHP5 (сейчас используется PHP5+MYSQL4.5, но пробовал и MYSQL5).Но одна из них ввела меня в ступор:
Код файла.
PHP:
<?
class SQL{
function SQL ($host, $user, $pass, $dbname){
$this->str=array();
$this->yes=true;
$this->errors=array();
$this->dbname=&$dbname;
$this->connect=mysql_connect($host, $user, $pass);
if ($this->connect) {
$this->select=mysql_select_db($dbname, $this->connect);
echo mysql_error();
}
else { $this->yes=false; };
}
function fetch_object($r)
{if ($r) return mysql_fetch_object($r);
}
function affected_rows(){
return mysql_affected_rows($this->connect);
}
function insert_id(){
return mysql_insert_id($this->connect);
}
function query()
{
if ($this->yes==true)
{
$args=func_get_args();
if (count($args)==1)
{$r=@mysql_query($args[0], $this->connect);
$this->str[]=$args[0];
}
else
{
preg_match("/([?])/", $args[0], $t);
if (count($t[1])>(count($args)-1)) die('Ошибка запроса');
$args[0]=str_replace("%", "%%", $args[0]);
$args[0]=str_replace("?", "%s", $args[0]);
for ($i=1; $i<count($args); $i++)
{if (is_int($args[$i])) continue;
$args[$i]="'".mysql_escape_string($args[$i])."'";
}
$t=call_user_func_array("sprintf", $args);
$r=@mysql_query($t, $this->connect);
$this->str[]=$t;
}
//if ($_SERVER['REMOTE_ADDR']=='127.0.01')
echo $this->errors[]=mysql_error();
return $r;
}
}
}
$this->db=new sql('localhost', 'db', '', 'db');
?>
PHP:
Fatal error: Call to undefined function mysql_connect() in z:\home\mbn.ru\www\php\sql.php on line 9
.