<?php
class MyPDO
{
public static function run($sql, $params = [])
{
$query = self::connect()->prepare($sql);
if (empty($params[0])) :
foreach ($params as $item => $value) :
$query->bindValue($item, $value, self::type($value));
endforeach;
else :
$i = 1;
foreach ($params as $value) :
$query->bindValue($i++, $value, self::type($value));
endforeach;
endif;
$query->execute();
return $query;
}
public static function connect()
{
return new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => true]);
}
public static function type($value)
{
if (is_bool($value)) :
return $type = PDO::PARAM_BOOL;
elseif (is_null($value)) :
return $type = PDO::PARAM_NULL;
elseif (is_int($value)) :
return $type = PDO::PARAM_INT;
elseif (is_string($value)) :
return $type = PDO::PARAM_STR;
else :
return $type = false;
endif;
}
}
// пример использования
MyPDO::run('запрос', [массив параметров])->метод();