3 回答
TA贡献1836条经验 获得超3个赞
可以绑定表名称吗?
没有。
您必须将表名称列入白名单。我怀疑您想让用户浏览数据库中的任何表。
而且,您还必须手动设置标识符的格式。有一个带示例的Wiki。为什么不先阅读它?
更新: 如您所见,PDO实用于现实生活中的任务。因此,您必须拥有一个更智能的抽象库来处理MySQL查询。这是一个使用safeMysql类的示例,它将大大缩短您的代码:
class form{
public function __construct($table){
global $db;
return $db->getAll("DESCRIBE ?n", $table);
}
}
2个注意事项:
我删除了第二个参数,因为您的函数中没有使用它的代码。
切勿在课堂上联系。请改用已经打开的连接。否则,您将通过大量连接杀死MySQL服务器。
排除实施版本
class form {
public function __construct($table,$skip = array("id")){
global $db;
$data = array();
$res = $db->query("DESCRIBE ?n", $table);
while($row = $db->fetch($res)) {
if (!in_array($row['Field'],$skip)) {
$data[] = $row;
}
}
return $data;
}
}
但是,此类类很少能按预期使用-总是有很多例外情况和手动格式化才能使其可用。
TA贡献1811条经验 获得超4个赞
完成所有修改后,您的答案就会变得更加有意义。我将坚持一个简单的,无绑定的PDO查询,因为它需要与您提到的类相同数量的语句,并创建一个全局pdo变量。同样,该类并非旨在使表单从头到尾完成,而只是旨在为您创建具有正确输入类型的输入和标签,具有正确“ for”的标签,最大长度等于数据库中字段的最大长度,等等。就格式化而言,只要保持HTML简单,所有格式化都可以在CSS中轻松完成。
- 3 回答
- 0 关注
- 315 浏览
添加回答
举报