MySQL PDO WHERE = $ variable

时间:2014-11-27 09:16:04

标签: php mysql pdo

我有这个PHP函数,我想通过调用get_database_data()

从数据库中获取数据

在这个函数中,我有两个应该在WHERE $variable1 = $variable2中使用的变量。

我知道你可以使用"WHERE ".$variable1." = ".$variable2。它适用于$variable2,但不适用$variable1

我可以使用的其他东西,或者我如何使其工作?

修改

没有错误,但我没有得到任何行返回

EDIT2:

我使用:"WHERE $variable1 = ".$variable2

让它工作

1 个答案:

答案 0 :(得分:0)

你应该使用准备好的陈述。

这是一个片段,可用于构成可以返回所需数据的函数。您应该可以根据自己的需要轻松修改它。

   function get_database_data($variable1,$variable2)
   {
        $dbh = new PDO("mysql:host=url;dbname=somedb", "user", "pass");
        $sqlUpdate = "SELECT * FROM sometable WHERE {$variable1} = :variable2";
        $sthUpdate = $dbh->prepare($sqlUpdate);
        $sthUpdate->bindParam(':variable2', $variable2, PDO::PARAM_STR, 12);
        $sthUpdate->execute();
        $result = $sthUpdate->fetchAll(PDO::FETCH_ASSOC);
        return $result;
    }



    print_r(get_database_data('fieldname','value'));

我觉得这个问题很有意思,建议你也读一读:

Can I use a PDO prepared statement to bind an identifier (a table or field name) or a syntax keyword?