Вы не должны указывать :email
в запросе; драйвер базы данных определит, как обрабатывать параметр, поскольку он знает переданный тип и тип столбца в базе данных. Но вам нужно добавить :
к email
при выполнении параметризованного запроса.
$statement = $pdo->prepare("SELECT user_id FROM tbl_server WHERE user_id = (SELECT user_id from tbl_user where Email = :email) "); // here i need the normal apostrophe
$result = $statement->execute(array(':email' => $email));
$user = $statement->fetch();
Кстати, вы должны проверить, является ли $result
true
или false
, также ваш запрос может доставить пустой набор результатов. Поэтому вы должны проверить, будет ли $user === false
(т.е. пользователь не найден) после извлечения.