это правильный способ подключения к базе данных?
<?php
class Connect {
private $servername;
private $serveruser;
private $password;
private $database;
function __construct($servername, $serveruser, $password, $database )
{
$this->servername = $servername;
$this->serveruser = $serveruser;
$this->password = $password;
$this->database = $database;
}
function conn()
{
try {
$conn = new mysqli($servername, $serveruser, $password, $database);
echo "conn success";
}
catch(Exception $e)
{
echo "ERROR: " . $e->getMessage();
}
}
}
?>
И если бы мне нужно было получить доступ к $ conn в других файлах .php, как бы я это сделал? Пример из процедурного метода: $username = mysqli_real_escape_string($conn,$_POST['username']);
Как должна выглядеть эта строка, если мы используем метод ООП?
Постскриптум Пожалуйста, не говорите мне ничего о PDO.
Вот как на самом деле должен выглядеть ваш код.
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new mysqli("host","username","password","database");
Переходя к существующему коду, я думаю, что это может быть единственным способом сохранить экземпляр вашего соединения. Я имею в виду, если вы не хотите делать (new Connect(...))->conn()
каждый раз.
<?php
class Connect
{
private $servername;
private $serveruser;
private $password;
private $database;
private static $conn = null;
function __construct($servername, $serveruser, $password, $database )
{
$this->servername = $servername;
$this->serveruser = $serveruser;
$this->password = $password;
$this->database = $database;
}
function conn()
{
try {
$conn = new mysqli($servername, $serveruser, $password, $database);
self::$conn = $conn;
echo "conn success";
}
catch(Exception $e)
{
echo "ERROR: " . $e->getMessage();
}
}
public static function instance()
{
if (! self::$conn)
{
# Initialize
# (new static(...))->conn();
}
return self::$conn;
}
}
# In your other *.php files
$username = mysqli_real_escape_string(Connect::instance(),$_POST['username']);