什么是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
之间名称差异的原因。
答案 0 :(得分:2)
有些程序员喜欢将关联数组的每个元素分配给常规变量,因此他们可以更简洁地使用它们。使用bind_result
会自动为您执行此操作,并且您不必每次都通过提取循环重复此操作。
这基本上只是一种风格选择。恕我直言,bind_result
的主要问题是你必须确保参数的顺序与select
列表保持同步。 bind_param
也是如此(这就是为什么PDO允许:name
参数来解决这个问题),但其好处超过了它。
答案 1 :(得分:0)
从数据库返回字符串没有安全风险(正确的验证取决于您返回的内容),
get_result()
可以更容易地从语句
bind_result()
可让您轻松使用您希望使用的值。
基本上,这完全取决于开发人员喜欢使用的内容。变量或寻找数组。它们都执行相同的任务,只需使用bind_result就会删除一行代码来获取数组类型。