Мой вопрос довольно прост: возможно ли использовать функции store_result() и bind_result() с PHP PDO? 
Вот пример кода, с которым я столкнулся:
 $stmt = $mysqli->prepare("SELECT id, username, password, salt FROM members WHERE email = ? LIMIT 1")) { $stmt->bind_param('s', $email); // Bind "$email" to parameter. $stmt->execute(); // Execute the prepared query. $stmt->store_result(); $stmt->bind_result($user_id, $username, $db_password, $salt); // get variables from result. $stmt->fetch(); 
  Я видел, как они использовались в контексте mysqli , но не с PHP PDO.  store_result() и bind_result() указаны в mysqli на www.php.net.  Мне любопытно, если они действительны, или если есть сопоставимые методы. 
  Изменить: Очевидно, что существует некоторый перевод между двумя методами.  Мое предположение заключается в том, что store_result и bind_result() похожи на команды fetch() PDO. 
  Дело в том, что нет никакого смысла использовать ни store_result (), ни bind_result () с PDO . 
  Просто получайте данные и используйте их в любом месте.  Это и есть точка PDO. 
 $sql = "SELECT id, username, password, salt FROM members WHERE email = ? LIMIT 1"; $stmt = $pdo->prepare($sql); $stmt->execute(array($email)); $row = $stmt->fetch(); 
  Теперь у вас есть данные пользователя в массиве $row . 
Хранение результирующей строки в отдельных переменных очень редко практикуется в наши дни. Но если вы предпочитаете такой древний способ обработки данных, вы можете добавить
 extract($row); 
к приведенному выше коду, чтобы получить ваши глобальные переменные.
Основная проблема с mysqli-way заключается в том, что чрезвычайно сложно использовать его с любым уровнем абстракции.
В реальной жизни мы никогда не вызываем базу данных в глобальном масштабе , а скорее в такой функции, как эта
 function getUserData() { // getting data return $array; } 
и по какой-то причине этот простой, но в основном используемый код становится чрезвычайно сложным с mysqli! В реальной жизни нам не нужны отдельные переменные, а единственный массив, который нужно вернуть. Но с mysqli нам нужно сначала получить эти переменные, а затем поместить их в массив и только затем вернуть их. Просто сумасшедший!
  Вместо store_result и bind_result ;  вы можете использовать list построений языка.  Пример использования: 
 $stmt = $pdo->prepare("SELECT id, username, password, salt FROM members WHERE email = ? LIMIT 1") $stmt->bindValue( 1, $email, PDO::PARAM_STR); $stmt->execute(); list($user_id, $username, $db_password, $salt) = $stmt->fetch( PDO::FETCH_NUM ); 
  PDO::FETCH_NUM используется, потому что: 
list()работает только на числовых массивах и предполагает, что числовые индексы начинаются с 0.
Это возможно, и я недавно использовал в своем проекте.
 $prep_stmt = "SELECT id FROM member WHERE username = ? LIMIT 1"; $stmt = $mysqli->prepare($prep_stmt); if ($stmt) { $stmt->bindparam(1, $username); $stmt->execute(); $result=$stmt->fetchALL(PDO::FETCH_OBJ); } if ($stmt->rowCount() == 1) { echo"user exist"; $stmt->close(); }