簡體   English   中英

PHP變量作為SQL查詢中的表名

[英]PHP variable as table name in SQL query

PHP變量可以用作SQL查詢中的表名嗎? 在我的情況下,FROM后面的PHP變量應該是我的JQuery代碼發送的值。 我想根據從JQuery發送的值來更改SQL查詢(不同的值取決於選擇選擇框的哪個選項)。

$file_absolute = ---Placeholder for correct file path---;
include_once($file_absolute);
$mysql = new mysqli($db_host, $db_username, $db_password, $db_name);
$verb_value = $_POST['verb_value'];

$mysql->query("SET CHARACTER SET 'utf8'");

$result = $mysql->query("SELECT present_tense FROM $verb_value");

您可以這樣做,是的。 是否想要是另一回事-如果要將用戶輸入添加到SQL查詢中,則會有一個巨大的SQL注入孔。

就是說,使用表名,您可以實現白名單,然后將傳遞的值與表名進行比較,以衡量安全性。

但是,您不能將表名(或列名)作為綁定參數傳遞-它們需要在查詢中生成。

用雙引號引起來的字符串將解析其中的任何變量,因此可以使用。 單引號字符串不會。

但是,這通常不被認為是安全的。 我不確定是否可以使用bindParam方法來實現此目的(我使用PDO,而不是mysqli),因為它實際上不是參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM