$stmt = $db->prepare("SELECT * FROM user WHERE name=?");
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows > 0){
//retrieve user's id
}
我想检查用户是否存在并选择他的ID。我做了第一个,可以如何获得他的身份证?循环结果行?或者我需要写另一个SQL?我也对store_result()和get_result()感到困惑。
答案 0 :(得分:2)
您有两个选择。您可以将结果提取到数组中或将其存储并绑定到变量。您应该几乎总是选择第一个选项。
input_df['Department']=( input_df['Email'].map(compare_df.set_index('Email')['Department'])
.fillna(input_df['Department']) )
get_result()
$stmt = $db->prepare("SELECT * FROM user WHERE name=?");
$stmt->bind_param('s', $username);
$stmt->execute();
$row = $stmt->get_result()->fetch_assoc();
if ($row) {
echo $row['id'];
}
要使用此选项,您必须知道结果集中列的顺序,这意味着您不应使用store_result()
SELECT *
如您所见,第一个选项更容易,更清洁。唯一的缺点是,使用极老的PHP版本(PHP <5.4)时,您可能会遇到问题。
答案 1 :(得分:1)
我认为您应该在执行查询后获取结果以检索所有记录,如下所示
$stmt = $db->prepare("SELECT * FROM user WHERE name=?");
$stmt->bind_param('s', $username);
$stmt->execute();
if($stmt->num_rows > 0)
{
$row = $stmt->fetch_array()
print_r($row);
}