<?php
class MySQL
{
protected static $connection = null;
protected static function connection()
{
if (self::$connection === null) {
try {
$dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=' . DB_CHAR;
$opt = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];
self::$connection = new PDO($dsn, DB_USER, DB_PASS, $opt);
} catch (PDOException $error) {
die($error->getMessage());
}
}
return self::$connection;
}
public static function run($sql, $params = [])
{
$query = self::connection()->prepare($sql);
if (array_key_exists(0, $params)) {
$i = 1;
foreach ($params as $value) {
$query->bindValue($i++, $value, self::type($value));
}
} else {
foreach ($params as $key => $value) {
$query->bindValue($key, $value, self::type($value));
}
}
$query->execute();
return $query;
}
protected static function type($value)
{
if (is_int($value)) {
$type = PDO::PARAM_INT;
} elseif (is_string($value) || is_float($value)) {
$type = PDO::PARAM_STR;
} elseif (is_bool($value)) {
$type = PDO::PARAM_BOOL;
} elseif (is_null($value)) {
$type = PDO::PARAM_NULL;
} else {
$type = false;
}
return $type;
}
}
<?php
if (in_array($_SERVER['REMOTE_ADDR'], ['127.0.0.1'])) {
define('DB_HOST', '');
define('DB_NAME', '');
define('DB_CHAR', 'utf8mb4');
define('DB_USER', '');
define('DB_PASS', '');
} else {
define('DB_HOST', '');
define('DB_NAME', '');
define('DB_CHAR', 'utf8mb4');
define('DB_USER', '');
define('DB_PASS', '');
}
spl_autoload_register(function ($class) {
require_once "{$class}.php";
});
<?pho
// вариант 1
$result = MySQL::run('select * from users where login = ? limit 1', [$_POST['login']])->fetchObject();
// вариант 2
$result = MySQL::run('select * from users where login = :ln limit 1', [':ln' => $_POST['login']])->fetchObject();
if (is_object($result) === true) {
echo "Пользователь {$result->login} найден";
}