【问题标题】:MySQL PDO WHERE = $variableMySQL PDO WHERE = $变量
【发布时间】:2014-11-27 09:16:03
【问题描述】:

我有这个 PHP 函数,我想通过调用 get_database_data() 从数据库中获取数据

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

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

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

编辑:

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

EDIT2:

我已经让它工作了,使用:"WHERE $variable1 = ".$variable2

【问题讨论】:

  • 可能是"WHERE $variable1 = ".$variable2 ?
  • @RichardBernards 我的错误更新了。
  • 究竟是什么不工作?有没有错误?
  • 您是否强制在字段名中使用变量?
  • 我已经编辑了问题

标签: php mysql pdo


【解决方案1】:

你应该使用准备好的语句。

这里有一个sn-p,可以用来组成一个函数,可以返回你需要的数据。您应该能够根据自己的需要轻松修改它。

   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?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-21
    • 2017-04-02
    • 2016-01-24
    • 2020-07-31
    • 2017-04-25
    • 2013-05-01
    • 2020-05-02
    相关资源
    最近更新 更多