在获取数据PDO PHP时,是否可以将字段名称作为$ variable传递?

时间:2014-07-05 08:56:12

标签: php pdo

这是我的代码: - _US是主表中的一个字段的名称。它包含数值

$count = '_US'; $random_id = '1';
$stmt = $db->prepare("SELECT id, name, :count FROM main_table WHERE id=:got_id LIMIT 1");
        $stmt->bindValue(':count',$count,PDO::PARAM_STR);
        $stmt->bindValue(':got_id',$random_id,PDO::PARAM_STR);
        try{
            $stmt->execute();  $count = $stmt->rowCount();
            if($count > 0){
                while($row = $stmt->fetch(PDO::FETCH_OBJ)){
                echo "ID - ".$row->id." , Name - ".$row->name." & Its Value -".$row->$count."<br/>";
                }
            }
            else{ echo "Error Occured<br/>";}
        }
        catch(PDOException $xyz ){
        // some code
        }

结果是:ID - 1,姓名 - 美国&amp;它的价值-_

问题:它没有生成数值。它只是返回字段名称 - _US

1 个答案:

答案 0 :(得分:0)

超短答案。否。

更长的回答:No, they cannot

表和列名称不能作为参数传递。当然,您可以手动清理数据并使用变量。

switch($input)
{
    case 'user':
        $columnName='user';
        break;
    default:
        $columnName='id';
        break;
}

$sql="select ".$columnName." from someTable";

然而,您可以将value传递给查询并将其作为查询的一部分返回:

$var="SomeString";
$sql="select id, '".$var."' as someField from someTable where id=:id";