我的问题是相当简单:是否可以使用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_result与bind_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,我们需要先获取这些变量,然后将它们放在数组中,然后才返回它们.疯了!