[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подключение к БД
Rigel
Всем привет!
Написал такое подключение к базе данных:

<?php
require_once "config.php";

class DbWork {
private $connect;
private $encode;
public $errors;

public function db_connect($db_host, $db_user, $db_pass, $db_name) {
$connect = mysql_connect($db_host, $db_user, $db_pass);
if(!$connect) {
$errors[].= 'Ошибка подключения к базе данных.';
}
$select = mysql_select_db($db_name, $connect);
if(!$select) {
$errors[].= 'Ошибка при выборе базы данных.';
}
$encode = mysql_query("SET NAMES UTF-8");
if(!$encode) {
$errors[].= 'Ошибка при установки кодировки БД.';
}
return $errors;
}
}


$db = new DbWork();
$db->db_connect($db_host, $db_user, $db_pass, $db_name);
if(count($db->errors) == 0) {
echo 'Success!';
}
else
{
print_r($errors);
}
?>


Но даже, если допустить где-то ошибку, например прописать в config.php неправильное имя пользователя, то все равно при вызове скрипта выдается

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root1'@'localhost' (using password: NO) in Z:\home\localhost\www\db.php on line 10

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in Z:\home\localhost\www\db.php on line 14

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Z:\home\localhost\www\db.php on line 18

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in Z:\home\localhost\www\db.php on line 18
Success!


почему выдается success? и как управлять warning'ами, чтобы выводились только мои?



Спустя 13 минут, 40 секунд (10.11.2010 - 03:27) kirik написал(а):
Почему if(count($db->errors) == 0) {, если $errors[].=?

Спустя 9 минут, 24 секунды (10.11.2010 - 03:37) Rigel написал(а):

class DbWork {
private $connect;
private $encode;
public $errors = array();

public function db_connect($db_host, $db_user, $db_pass, $db_name) {
$connect = mysql_connect($db_host, $db_user, $db_pass);
if(!$connect) {
$errors[] = 'Ошибка подключения к базе данных.';
}
$select = mysql_select_db($db_name, $connect);
if(!$select) {
$errors[] = 'Ошибка при выборе базы данных.';
}
$encode = mysql_query("SET NAMES UTF-8");
if(!$encode) {
$errors[] = 'Ошибка при установки кодировки БД.';
}
return $errors;
}
}


$db = new DbWork();
$db->db_connect($db_host, $db_user, $db_pass, $db_name);
if($errors == 0) {
echo 'Success!';
}
else
{
print_r($errors);
}

Так правильно?
Выдает тоже самое :unsure:

Спустя 9 минут, 4 секунды (10.11.2010 - 03:46) kirik написал(а):
Должно быть вместо $errors[] - $this->errors[].
Или тут подругому:
$errors = $db->db_connect($db_host, $db_user, $db_pass, $db_name);
if(count($errors) == 0) {
...

Спустя 14 минут, 4 секунды (10.11.2010 - 04:00) Rigel написал(а):
Работает, спасибо! cool.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.