准备好的语句和bind_result

时间:2018-06-29 08:43:25

标签: php mysqli pdo prepared-statement

我以前使用普通查询。但是最近开始使用准备好的语句。我想到了这个问题

我的问题

假设我有一个名为files的表,其列名称为id, name, privilege, acceptance。我只需要选择privilege的值。使用bind_result部分时,是否需要在其中提供所有列名称?还是只是privilege会做? 意思是,我需要这样做

$naming = $_POST['naming'];

$sql = 'SELECT * FROM files WHERE name = ?'; 
if ($stmt = $db->prepare($sql)) {
    $stmt->bind_param('s', $naming); 
    $stmt->execute();

$stmt->bind_result($id, $name, $privilege, $acceptance);

$stmt->bind_result($privilege);

$stmt->fetch();
}
$db->close();

下一个问题是,查询如何知道$id属于数据库id列,$name属于数据库name列,{如果我们使用$privilege

,则{1}}属于数据库privilege列,而$acceptance属于数据库acceptance

最后一个问题是,如何获取这些变量的值以在以后的PHP中使用?对于普通查询,在获取结果后,可以使用诸如$stmt->bind_result($id, $name, $privilege, $acceptance);$row['id']$row['name']$row['privilege']等。但是对于准备好的陈述该怎么做呢?

0 个答案:

没有答案