嗨,我只想知道是否可以在同一页面上同时对查询中的DB::getInstance()值进行不同的查询? 这样做是好的做法吗? 如果不是,你能告诉我最佳实践吗?
我有更新页面(update.php)在我的更新页面上,我查询了您将在数据库中获取id的部分。
这工作正常。
$id = $_GET['id'];
$agent = DB::getInstance()->get('agent', array('id', '=', $id));
在我的更新下方.php页面是一个下拉字段,它将在其中查询我的表数据的某些部分。 例如,它是该用户所属的控制器表。
但它不起作用。
$directors = $dbh->query("SELECT * FROM directors");
echo "<select name='director' id='director'>
<option value=''>".$agent->results()[0]->agent_name."</option>";
foreach($directors->results() as $director){
echo "<option value='$director->name'>".$director->name."</option>";
}
echo "</select>";
谢谢
虽然不可能直接回答你的问题,但有一些方向
- 不要使用 getinstance() 方法。 现在它只是没有意义。
- 不要使用 get() 方法。它从来没有任何意义。
如果您想要单例方法,请创建一个已经是 PDO 实例的包装器。你可以在这里找到一个例子。
您将能够运行任意数量的任何类型的查询:
$sql = 'SELECT * FROM agent WHERE id = ?';
$agent = DB::prepare($sql)->execute([$_GET['id']])->fetch();
$directors = DB::query("SELECT * FROM directors")->fetchAll();
看来你也误会了使用查询结果
echo "<select name='director' id='director'>
<option value=''>$agent->agent_name</option>";
foreach($directors as $director){
echo "<option value='$director->name'>$director->name</option>";
}
echo "</select>";