我以前使用普通查询。但是最近开始使用准备好的语句。我想到了这个问题
我的问题
假设我有一个名为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
privilege
列,而$acceptance
属于数据库acceptance
列
最后一个问题是,如何获取这些变量的值以在以后的PHP中使用?对于普通查询,在获取结果后,可以使用诸如$stmt->bind_result($id, $name, $privilege, $acceptance);
,$row['id']
,$row['name']
,$row['privilege']
等。但是对于准备好的陈述该怎么做呢?