Как прописать коннект с базой данных

dmx

Хранитель порядка
Регистрация
22 Июн 2011
Сообщения
715
Реакции
708
PHP:
public function __construct(){
        $this->connect();
    }
   
    public function connect(){ global $site;
        if(empty($this->connect)){
            $this->sql4user = (empty($site["secretkey4sqlu"])? $site["techname"]: $site["techname"]."_".$site["secretkey4sqlu"]);
            $this->connect = @mysql_connect((empty($site["secretkey4sqlu"])? "localhost": $site["techname"].".mysql"), $this->sql4user, (empty($site["secretkey4sqlp"])? $site["techname"]: $site["secretkey4sqlp"])) or $this->err();
            if($this->iscon()){
                mysql_set_charset("cp1251");
                mysql_select_db($this->sql4user);
                return true;
            }else return false;
        }else return true;
    }

:pop:
Мой то как вписать , не понятная структура.
 
Для понимания почитай Для просмотра ссылки Войди или Зарегистрируйся и про тернарный оператор.

Для решение задачи можно жестко прописать параметры подключения:
PHP:
$this->connect = @mysql_connect("localhost", 'sql_user_name', 'sql_user_password') or $this->err();
...
mysql_select_db('sql_table');
 
Latteo , a можешь в мой код вписать данные для коннекта , без ...............
как ни пытаюсь - не работает. хоть окстись.
 
Может еще где-то затаилась ошибка...

Смотри логи мускуля на предмет того есть ли коннект.
Смотри какую ошибку класс возвращает. Судя по $this->err() должна быть переменная с ошибкой.
 
  • Нравится
Реакции: dmx
А что тут непонятного? Данный код не работает? Значит надо смотреть значения, что то типа
Код:
$result = new ИмяКлассаИзПримера();
var_dump($result);
И смотреть правильные они или нет. Если надо прописать другие значения для соединения, то можно сделать что то типа
Код:
$site["secretkey4sqlu"]="sql_user";
$site["secretkey4sqlp"]="sql_password";
$result = new ИмяКлассаИзПримера();
единственная проблема в том что в этом вызове подразумевается что имя базы совпадает с именем пользователя
 
  • Нравится
Реакции: dmx
Вот весь кусок функции, как только не пробовал..
PHP:
/* sql */
class sql{
   
    public function __construct(){
        $this->connect();
    }
   
    public function connect(){ global $site;
        if(empty($this->connect)){
            $this->sql4user = (empty($site["secretkey4sqlu"])? $site["techname"]: $site["techname"]."_".$site["secretkey4sqlu"]);
            $this->connect = @mysql_connect((empty($site["secretkey4sqlu"])? "localhost": $site["techname"].".mysql"), $this->sql4user, (empty($site["secretkey4sqlp"])? $site["techname"]: $site["secretkey4sqlp"])) or $this->err();
            if($this->iscon()){
                mysql_set_charset("cp1251");
                mysql_select_db($this->sql4user);
                return true;
            }else return false;
        }else return true;
    }
   
    public function close(){
        if($this->iscon()){
            if(isset($this->result)) mysql_free_result($this->result);
            mysql_close($this->connect);
        }
    }   
 
    public function iscon() {
        return (gettype($this->connect)=="resource") ? true : false;
    }
   
    public function err($err=0) {
        exit("Ошибка базы данных #".(($this->iscon())? mysql_errno($this->connect): mysql_errno().". ".mysql_error()));
    }
 
    public function req($req="") {
        if($this->iscon()){
            $this->result = @mysql_query($req);
            if($this->result===false){
                $this->err();
                return false;
            }elseif($this->result===true&&gettype($this->result)=="boolean"){
                return array("sql" => array());
            }else{
                switch(mysql_num_rows($this->result)){
                    case 0:
                        $return = array();
                        break;
                    case 1:
                        if(mysql_num_fields($this->result)==1){
                            $row = mysql_fetch_row($this->result);
                            $return = $row[0];
                        }else $return[0] = mysql_fetch_assoc($this->result);
                        break;
                    default:
                        $return = array();
                        while($obj = mysql_fetch_assoc($this->result)) array_push($return, $obj);
                }
                return array("sql" => $return);
            }   
        }else return false;
    }
 
    public function lastinsert(){
        $this->lastinsert = mysql_insert_id();
        return (empty($this->lastinsert)) ? false : $this->lastinsert;
    }
   
    public function lastupdate(){
        $this->lastupdate = mysql_affected_rows();
        return (empty($this->lastupdate)) ? false : $this->lastupdate;
    }
 
}
/* /sql */
 
  • Заблокирован
  • #7
Объясни, пожалуйста, поконкретнее что именно-то надо
 
  • Нравится
Реакции: dmx
мои данные для коннекта вписать.
localhost
юзер root
дб stroy
без пароля.

а вот и весь файл в аттаче

ps какой любезный Для просмотра ссылки Войди или Зарегистрируйся "Объясни, пожалуйста."
 

Вложения

  • _init.rar
    35 KB · Просмотры: 2
  • Заблокирован
  • #9
Убери собаку перед - @mysql_connect
чтоб видеть ошибки подключения.

попробуй так... может сканает)))

PHP:
/* sql */
class sql{
 
    public function __construct(){
        $this->connect();
    }
 
    public function connect(){ global $site;
        if(empty($this->connect)){
            $this->sql4user = (empty($site["secretkey4sqlu"])? $site["techname"]: $site["techname"]."_".$site["secretkey4sqlu"]);
            $this->connect = mysql_connect("localhost", "mysql_user", "mysql_password");
            if($this->iscon()){
                mysql_set_charset("cp1251");
                mysql_select_db($this->sql4user);
                return true;
            }else return false;
        }else return true;
    }
 
    public function close(){
        if($this->iscon()){
            if(isset($this->result)) mysql_free_result($this->result);
            mysql_close($this->connect);
        }
    }
 
    public function iscon() {
        return (gettype($this->connect)=="resource") ? true : false;
    }
 
    public function err($err=0) {
        exit("Ошибка базы данных #".(($this->iscon())? mysql_errno($this->connect): mysql_errno().". ".mysql_error()));
    }
 
    public function req($req="") {
        if($this->iscon()){
            $this->result = @mysql_query($req);
            if($this->result===false){
                $this->err();
                return false;
            }elseif($this->result===true&&gettype($this->result)=="boolean"){
                return array("sql" => array());
            }else{
                switch(mysql_num_rows($this->result)){
                    case 0:
                        $return = array();
                        break;
                    case 1:
                        if(mysql_num_fields($this->result)==1){
                            $row = mysql_fetch_row($this->result);
                            $return = $row[0];
                        }else $return[0] = mysql_fetch_assoc($this->result);
                        break;
                    default:
                        $return = array();
                        while($obj = mysql_fetch_assoc($this->result)) array_push($return, $obj);
                }
                return array("sql" => $return);
            }
        }else return false;
    }
 
    public function lastinsert(){
        $this->lastinsert = mysql_insert_id();
        return (empty($this->lastinsert)) ? false : $this->lastinsert;
    }
 
    public function lastupdate(){
        $this->lastupdate = mysql_affected_rows();
        return (empty($this->lastupdate)) ? false : $this->lastupdate;
    }
 
}
/* /sql */
 
а имя базы моей куда вписать :facepalm:
 
Назад
Сверху