php开发人员创建函数bind_result的意义何在,因为get_result似乎也很好。
if($stmt=$mysqli->prepare("SELECT member_ID FROM members where hair=? and hand=?")){
if($stmt->bind_param('ss',$hair,$hand)){
if($stmt->execute){
$result=$stmt->get_result();
while($line=$result->fetch_assoc()){
echo $line['member_ID'];
}
// ------------ versus -------------------
// $stmt->store_result();
// $stmt->bind_result($member_ID);
// while($stmt->fetch()){
// echo $member_ID;
// }
}
}
}
似乎(我猜)php开发人员自己更喜欢$stmt->fetch()
,因为这个函数出现得更早,但为什么是$stmt->fetch()
呢?这似乎不是$row['member_ID']
和$member_ID
变量名称差异的原因。
一些程序员喜欢将关联数组的每个元素分配给一个正则变量,这样他们就可以不那么冗长地使用它们。使用bind_result
会自动为您完成此操作,并且您不必每次都在fetch循环中重复它。
这基本上只是一种风格选择。IMHO,bind_result
的主要问题是必须确保参数的顺序与select
列表同步。bind_param
也是如此(这就是PDO允许:name
参数来解决这个问题的原因),但好处大于它。
从数据库返回字符串没有安全风险(正确的验证取决于您返回的内容),
get_result()
使从语句返回预先创建的数组变得更容易
bind_result()
使您可以轻松地使用想要使用的值。
从本质上讲,这一切都取决于开发人员喜欢使用什么。变量或查找数组。它们都执行相同的任务,只需使用bindresult就可以占用一行代码来获取数组类型。