将动态参数传递给对象->;用PHP实现sql获取

将动态参数传递给对象->;用PHP实现sql获取,php,Php,我想为我的sql获取创建一个参数的动态列表,因为sql可能会有很大的变化 该列表表示数据库列名称: $args = array( 'id', 'colname', 'colname2', 'colname3', 'colname4' ); 函数将获取所有数据,并将值添加到数组中,以便稍后存储在memcache中 $fetch = $db->connect->query('select * from tablename'); $resu

我想为我的sql获取创建一个参数的动态列表,因为sql可能会有很大的变化

该列表表示数据库列名称:

$args = array(
    'id',
     'colname',
     'colname2',
     'colname3',
     'colname4'
);
函数将获取所有数据,并将值添加到数组中,以便稍后存储在memcache中

$fetch = $db->connect->query('select * from tablename');
$result = array();
if ($fetch) {

    while ($obj = $fetch->fetch_object()) { 

        $params = array();
        for($x=0;$x<count($args);$x++){
            $params[] = $obj->$args[$x];
        }

        $result[$obj->id] = $params;
    }
}
$fetch=$db->connect->query('select*fromtablename');
$result=array();
如果($fetch){
而($obj=$fetch->fetch_object()){
$params=array();
对于($x=0;$x$args[$x];
}
$result[$obj->id]=$params;
}
}

给我这个错误:注意:数组到字符串的转换…

为什么要在需要数组时提取对象

这似乎是不必要的复杂;如果您获取了正确的列,那么您就可以在一条语句中获得所需的一切

比如:

$fetch = $db->connect->query('select `' . implode('`, `', $args) . '` from tablename');
$result = array();
if ($fetch) {
    while ($arr = $fetch->fetch_assoc()) { 
        $result[$arr['id']] = $arr;
    }
}

请注意,这将为您提供一个关联数组。如果您想要像示例中那样的数字数组,可以使用
fetch_row()
而不是
fetch_assoc()
$arr['id']
变成
$arr[0]

为什么要在需要数组时提取对象?这似乎不必要的复杂。我想传递一组要提取并存储在返回数组中的colname。我需要将db值存储在数组中,因为它将被添加到memcached中。我能用它获取所有值吗?@sdfgg45是的,请尝试一下。要添加到memcached吗是的,但是我需要找到一种新的方法来再次获取数据:)谢谢你的新输入。