我创建了这个函数来从数据库表中选择数据:
function data_users($dbc,$id){
$q = "SELECT * FROM users WHERE id = $id";
$r = mysqli_query($dbc,$q);
return $r;
}
如何创建相同的功能,但这次使用预处理语句?之后,通常会调用这样的函数:
$result = data_users($dbc,$id);
while ($users_info = mysqli_fetch_assoc($result)) {
//do something
}
更改后我可以使用相同的方法吗?
答案 0 :(得分:1)
请注意,您只能编写PHP mysqli构建在mysqlnd驱动程序上的函数。在这种情况下,您可以这样写:
function data_users($dbc,$id){
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $dbc->prepare($sql);
$stmt->bind_param("i",$id);
$stmt->execute();
$result = $stmt->get_result();
return $result->fetch_assoc();
}
请注意,您不应该害怕对象语法,它非常简单。
答案 1 :(得分:0)
if ($stmt = mysqli_prepare($db, "SELECT * FROM users WHERE id = ?")) {
mysqli_stmt_bind_param($stmt, "i", $id);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $result);
mysqli_stmt_fetch($stmt);