是否可以将store_result()和bind_result()与PHP PDO一起使用?

Mla*_*gma 10 php mysqli pdo

我的问题是相当简单:是否可以使用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();
Run Code Online (Sandbox Code Playgroud)

我已经看到这些在mysqliPHP PDO 的上下文中使用,但没有. store_result()bind_result()在www.php.net上的mysqli中引用.我很好奇它们是否有效,或者是否有类似的方法.

编辑:显然这两种方法之间存在一些转换.我的假设是,它 store_resultbind_result()PDO的fetch()命令类似.

You*_*nse 10

关键是,使用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();
Run Code Online (Sandbox Code Playgroud)

现在您的$row数组中有userdata .

在不同的变量存储结果行是非常难得时下练习.但是,如果您更喜欢这种处理数据的古老方式,您可以添加

extract($row);
Run Code Online (Sandbox Code Playgroud)

到上面的代码来获取你的全局变量.

mysqli-way的主要问题是在任何抽象级别上使用它都非常困难.

在现实生活中,我们从不全局范围内调用数据库,而是在这样的函数中

function getUserData() {
    // getting data
    return $array;
}
Run Code Online (Sandbox Code Playgroud)

由于某些原因,这个简单但最常用的代码变得非常难以使用mysqli!在现实生活中,我们不需要单独的变量,而是返回单个数组.但是对于mysqli,我们需要先获取这些变量,然后将它们放在数组中,然后才返回它们.疯了!