Php 如何为PDO语句使用已定义的表名?

Php 如何为PDO语句使用已定义的表名?,php,Php,我的一个配置文件中有所有的表定义,例如 define('tbl_admin', 'site_admin'); 我使用PDO语句从表中获取一些值,但无法调用“site_admin”表 我的代码如下: $db=new database(); $pdo_db_connx=$db->PDO_database(); $smt=$pdo_db_connx->prepare("select id from tbl_admin where

我的一个配置文件中有所有的表定义,例如

define('tbl_admin', 'site_admin');
我使用PDO语句从表中获取一些值,但无法调用“site_admin”表

我的代码如下:

      $db=new database();
      $pdo_db_connx=$db->PDO_database();          
      $smt=$pdo_db_connx->prepare("select id from tbl_admin where  admin=:username");
      $smt->bindParam(":username",$username);
有什么建议吗?

当您这样做时:

$smt=$pdo_db_connx->prepare("select id from tbl_admin where  admin=:username");
tbl_admin
被视为表名
tbl_admin
,而不是常量

最简单的方法是用常量连接查询的各个部分:

$smt=$pdo_db_connx->prepare("select id from " . tbl_admin . " where  admin=:username");

在这里,
tbl_admin
将被视为常量,并使用其值。

我意识到该定义不适用于此问题。另一种方法是将表名分配给变量,例如:

$tbl_admin="site_admin";
查询将是:

$smt=$pdo_db_connx->prepare("select id from $tbl_admin where  admin=:username");

这是可行的。

插入变量,或将常量连接到查询中。PDO本身不使用PHP常量转换文本。您可以使用
“select id from”。tbl_管理员。“其中admin=:username”
sprintf(“从%s中选择id,其中admin=:username”,待定)