Обучение/Помощь новичкам | Как использовать?
php
class db {
public static $counter = 0;
protected static $instance = null;
public function __construct() {}
public function __clone(){}
public static function instance()
{
if (self::$instance === null)
{
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8',
PDO::ATTR_EMULATE_PREPARES => FALSE,);
try {
$dsn = 'mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset='.DB_CHAR;
self::$instance = new PDO($dsn, DB_USER, DB_PASS, $opt);
} catch (PDOException $e) {
die("Идёт обновление");
}
}
return self::$instance;
}
public static function __callStatic($method, $args)
{
if ($method == 'query' || $method == 'execute') static::$counter++;
return call_user_func_array(array(self::instance(), $method), $args);
}
public static function run($sql, $args = array())
{
static::$counter++;
$stmt = self::instance()->prepare($sql);
$stmt->execute($args);
return $stmt;
}
} Как с этой обёрткой к PDO использовать real_escape_string ???
Перерыл весь гугл и ничего нету об этом.
Может есть какие-то аналоги, или оно вообще в PDO не надо.
________
посл. ред. 26.11.2019 в 09:57; всего 2 раз(а); by CaMnoCe6e
CaMnoCe6e , читай внимательно
https://www.php.net/manual/ru/pdo.prepare.php
https://www.php.net/manual/ru/pdo.prepare.php
Avenax , вы имели ввиду вот это???
а также помогает избежать SQL-иньекций, так как нет необходимости экранировать передаваемые параметры.
а также помогает избежать SQL-иньекций, так как нет необходимости экранировать передаваемые параметры.
CaMnoCe6e (26.11.2019 в 10:28)
Avenax , вы имели ввиду вот это???
а также помогает избежать SQL-иньекций, так как нет необходимости экранировать передаваемые параметры.
Avenax , вы имели ввиду вот это???
а также помогает избежать SQL-иньекций, так как нет необходимости экранировать передаваемые параметры.
совершенно верно