примерно так
define( "DB_HOST", 'localhost' );
define( 'DB_NAME', '' ); // заполнить
define( 'DB_USER', '' );
define( 'DB_PASSWORD', '' );
define( 'DB_CHARSET', 'utf8mb4' );
$host_db = DB_HOST;
$name_db = DB_NAME;
$user_db = DB_USER;
$pass_db = DB_PASSWORD;
$char_db = DB_CHARSET;
$dsn = "mysql:host=$host_db;dbname=$name_db;charset=$char_db";
$options=[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try{
$dbh = new PDO($dsn,$user_db,$pass_db,$options);
}catch(
PDOException $e){
die("NO CONNECT -- ". $e->getMessage());
}
function db_user($email){
global $dbh;
$user = $dbh->prepare("SELECT * FROM `users` WHERE `email` = :email ");
$user->execute([
"email" => $email,
]);
$result = $user->fetchAll();
return (count($result) > 0) ? $result : []; // <-- многомерный массив! , т.к. возможны юзеры с одинаковой почтой
}
$email = ''; // искомая почта
$users = db_user($email);
$_SESSION['id'] = isset($users[0]['id']) ? $users[0]['id'] : '0'; // в сессию id первого попавшегося или 0
echo var_export($users,1);