На данный вопрос уже ответили:
У меня имеется страница на php, к ней подключается еще две.
require_once ($_SERVER['DOCUMENT_ROOT'].'function.php');
require_once($_SERVER['DOCUMENT_ROOT'].'connectdb.php');
в connect.db
подключение к базе вида
$mysqli = new mysqli('localhost', 'admin', 'password', 'base');
В функции внутри надо снова прописывать подключение к БД, можно ли как то пробросить эту переменную подключения к БД в функции, и как ее правильно вызвать изнутри?
function my_function($c)
{
}
Простой классс подключения к БД:
class Db{
public static function getConnection(){
$paramsPath = ROOT . '/config/db_params.php';
$params = include($paramsPath);
$dsn = "mysql:host={$params['host']};dbname={$params['dbname']};charset=UTF8";
$db = new PDO($dsn, $params['user'], $params['password']);
return $db;
}
}
Применение дальше по коду:
$db = DB::getConnection();
Самый простой и самый правильный вариант - передавать в качестве параметра.
function my_function($mysqli, $c)
{
}
Это добавит немного писанины сейчас, но сэкономит много потраченного впустую времени в будущем.
1). Используйте PDO!
2). Создайте класс обёртку PDO, либо используйте существующую, коих на GitHub полно.
3). Читайте документацию!
Просто пример:
class Database {
private $connection;
public function __construct() {
$this->connection = new mysqli('localhost', 'admin', 'password', 'base');
}
public function dropTable($table) {
$this->connection->query('DROP TABLE IF EXISTS $table');
}
////////
}
Использование в другом классе:
class Another {
private $database;
public function __construct() {
$this->database = new Database();
}
public function someAction() {
$this->database->dropTable('test');
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть некий парсер на php который собирает данные с сайтовЗадача сравнить исходные коды анализируемых сайтов на схожесть в %, для поиска сайтов...
***Помогите решить проблему: Ввожу кол-во задач больше 2 и у меня начинается бесконечный циклЯ только обучаюсь, но не пойму в чем проблема в этой...