PDO设置查询表变量

时间:2018-09-22 05:02:20

标签: php sql-server pdo lumen

是否可以使用PDO查询并将表分配为变量?

例如:

        $db = new PDO($this->driver . ":server={$this->host};Database={$this->database_name};", $this->username, $this->password);

        $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        $db->setAttribute( PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 200 );

        $query = 'SELECT top 10 * FROM ' . $this->table . ' ' . $query;
        $stmt = $db->prepare($query);
        $stmt->execute();

        return $stmt->fetchAll();

我需要能够将表​​名作为参数传递。我尝试了很多事情,但似乎没有任何效果。我也尝试过sqlsrv_query

我正在使用lumen作为框架。不知道是否有什么我可以用来做的。

2 个答案:

答案 0 :(得分:0)

您的问题是您的查询语句。您已将$ query添加到$ query的末尾。

尝试:

$query = 'SELECT top 10 * FROM ' . $this->table;

第二个音符。仅当您信任$this->table的内容时,这样做非常重要。表示它不是用户生成的。 PDO不允许使用参数化的表名。

答案 1 :(得分:0)

您可以尝试以下方法:(检查 use strict; use warnings; use Cwd qw( abs_path ); use File::Basename qw( dirname ); use lib dirname(abs_path($0)); use Sample; print Sample->test_function(); 进行更改)

$stmt