Задать вопрос
@Us59

Подключение БД.......?

Вопрос, как мне обращаться к БД??
Есть код самого подключения (взял из интернета):
// database.php
class CConnectionSingleton {
    private static $_instance = null;

    private static $_db_address     = '123';
    private static $_db_logon       = '123';
    private static $_db_password    = '123';
    private static $_db_goods_db    = '123';

    private $_connection = null;

    public static function getInstance()
    {
        if (self::$_instance != null) {
            return self::$_instance;
        }

        return new self;
    }

    private function __construct () {

        $this->_connection = new mysqli(self::$_db_address, self::$_db_logon, self::$_db_password, self::$_db_goods_db);

    }

    private function __clone () {}
    private function __wakeup () {}

    // закрыть соединение
    public function closeConnection()
    {
        $this->_connection->close();
    }

    // получить данные по запросу в БД
    public function sql2data($query)
    {
        // выполнить запрос в БД
        $result = $this->_connection->query($query);

        // сформировать результат

        $data = NULL;
        if ($result = $this->_connection->query($query)) {
            $data = array();
            while ($row = $result->fetch_assoc()) {
                $data[] = $row;
            }
        }

        // очистить память после выполнения sql запроса
        do{} while($this->_connection->more_results() && $this->_connection->next_result());

        // сформировать json строку по результату
        return $data;       
    }

    // перевести результат sql запроса в json
    public function sql2json($query)
    {
        // сформировать json строку по результату
        return json_encode($this->sql2data($query));     
    }

    // выполнить запрос в БД
    public function sql2simple($query)
    {
        // выполнить запрос в БД
        $result = $this->_connection->query($query);  
    }
}

Мне нужно подключиться к БД в другом файле:
// other.php
class Script {

function GetUpdateOrders() {
 // Тут нужно написать запрос к БД
}

}
  • Вопрос задан
  • 980 просмотров
Подписаться 2 Простой 5 комментариев
Решения вопроса 1
DevMan
@DevMan
не нужно брать код из этих ваших инторнетов, если отсутствует понимание что и как работает/должно работать.

у пыха одна из самых лучших документаций, которую я когда–либо видел среди яп'ов, с массой примеров.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ikfah012
Не самый умный парень в этом чате
Вы вообще понимаете, что значит ваш код?
Не стоит заниматься копипастой, если не знаете основ.
Во-первых, нормальная практика - выносить параметры подключения в отдельный файл.
Создаёте файл db.php, в него код:
<?php

//Параметры подключения в БД
$host = "localhost"; //имя хоста
$database = "base"; //имя базы
$user = "root"; //пользователь
$password = "pass"; //пароль
$dbtable = "table"; //таблица

$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));

?>


Затем в вашем основном файле вы подключаете его с помощью:
require_once('db.php');
Как обращаться к базе и главное - зачем вы должны понять сами.
Приведу пример.
Я делаю поиск клиентов в базе по фамилии или номеру телефона, мой код выглядит следующим образом:
function search_users() {  //объявляем функцию
	$query = strip_tags(trim($_POST['query']));  //принимаем данные из формы поиска
	if (preg_match('/[0-9]/', $query)) { //задаём условия для поиска (в данном случае совпадения номера или строки
		$sql = "SELECT * FROM Users WHERE phone LIKE '%$query%' ORDER BY id DESC"; //делаем выборку в базе по телефону
	}
	else {
		$sql = "SELECT * FROM Users WHERE surname LIKE '%$query%' ORDER BY id DESC"; //делаем выборку в базе по фамилии
	}
    global $link;
    $result = mysqli_query($link, $sql);
    $users = mysqli_fetch_all($result, MYSQLI_ASSOC);
    return $users;  //выводим результат
}


Начните с самых основ. Если не умеете составлять запросы в бд и не знаете синтаксиса php, то не стоит просто копировать куски кода из интернетов. Лучше разбирайтесь самостоятельно и задавайте вопросы тут :) удачи
Ответ написан
@grinat
Надо в этом классе заменить параметры подключения на свои, т.е. заменить private static $_db_address на private static $_db_address = 'localhost' и т.п. вызывать везде как:
$connect = CConnectionSingleton::getInstanse();
$users = $connect->sql2data('SELECT * FROM users');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы