2015-10-31 45 views
-1

我有一個我的配置文件中的所有表定義,例如。如何爲PDO語句使用定義的表名?

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); 

任何建議嗎?

+0

插入一個變量,或者將常量連接到查詢中。 PDO不會自變換PHP常量的文字。 – mario

+0

你可以使用''select id from「。 tbl_admin。 「其中管理員=:用戶名」或'sprintf(「從%s選擇ID,其中管理員=:用戶名」,tbl_admin);' –

回答

-1

當你這樣做:

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

tbl_admin被認爲是一個表名tbl_admin,而不是一個常量。

的simpliest方式是連接查詢的部分具有恆定:

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

這裏,tbl_admin將被視爲常數,它的值會被使用。

+0

這是我發佈問題之前的第一次嘗試。顯然,它沒有工作。不管怎麼說,還是要謝謝你。 – schenker

-1

我意識到定義不適用於這個問題。另一種方法是表名分配給一個變量,如:

$tbl_admin="site_admin"; 

和查詢將是:

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

這工作。