gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:10:04 24 4
gpt4 key购买 nike

我的问题很简单:是否可以将 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() 在 www.php.net 的 mysqli 中被引用。我很好奇它们是否有效,或者是否有类似的方法。

编辑:显然这两种方法之间有一些转换。我的假设是 store_resultbind_result() 类似于 PDO 的 fetch() 命令。

最佳答案

重点是,在 PDO 中既不使用 store_result() 也不使用 bind_result() 绝对没有意义
只需获取您的数据并在您希望的任何地方使用它。这就是 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,我们需要先获取这些变量,然后将它们放入数组中,然后才返回它们。太疯狂了!

关于php - 是否可以将 store_result() 和 bind_result() 与 PHP PDO 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16908589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com