2011-02-26 130 views
0

是否有一種安全的方式使用傳遞給函數的變量(變量不是用戶定義的)用於準備語句中的表名稱?已準備好的語句的函數

即:

function select($table) 
{ 
    blah blah 

    $stmt->prepare("SELECT * FROM $table WHERE id = ?"); 

    blah blah 
} 

我已經產生了具有所有可用的表名,如果他們中的一個$表一致,它返回表名的功能。我認爲它被稱爲硬編碼。但我不知道這是幫助我。基本上我想創建一個插入/更新/選擇使用預準備語句的函數。

回答

0

如果將$table與在查詢中使用它之前已知的表名稱列表進行比較,那應該是非常安全的。次好的事情是將表名打包成刻度標記,並刪除傳入的$table變量值中的任何刻度標記。

+0

太好了,謝謝! – Matt 2011-02-26 04:28:19