使用 PDO,我构建了一个简洁的对象,用于从数据库中检索行作为 PHP 对象,第一列值是名称,第二列值是所需值。
$sql = "SELECT * FROM `site`"; $site = array();
foreach($sodb->query($sql) as $sitefield){
$site[$sitefield['name']] = $sitefield['value'];
}
我现在想将它应用于具有 2 个参数的函数,第一个包含表,第二个包含任何 where 子句,然后产生相同的结果。
function select($table,$condition){
$sql = "SELECT * FROM `$table`";
if($condition){
$sql .= " WHERE $condition";
}
foreach($sodb->query($sql) as $field){
return $table[$field['name']] = $field['value'];
}
}
可以这样称呼的想法:
<?php select("options","class = 'apples'");?>
然后以与第一种方法相同的格式在页面上使用。
<?php echo $option['green'];?>
给我一个名为 value 的列的值,它与名为 field 的列中名为“green”的值位于同一行。
问题当然是该函数不会像那样返回 foreach 数据。也就是这一点:
foreach($sodb->query($sql) as $field){
return $table[$field['name']] = $field['value'];
}
不能返回这样的数据。
有没有办法做到?