PHP变量可以用作SQL查询中的表名吗?在我的例子中,在FROM之后的PHP变量应该是从我的JQuery代码发送的值。我希望SQL查询根据从JQuery发送的值进行更改(不同的值取决于选择框的选项)。
$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");发布于 2012-09-19 23:14:41
你能做到的,是的。你是否想要它完全是另一回事--如果你在SQL查询中添加用户输入,你就会遇到一个巨大的SQL注入漏洞。
也就是说,使用表名,您可以实现白名单,并将传递的值与之进行比较,以获得一定的安全性。
但是,您不能将表名(或列名)作为绑定参数传递-它们需要作为查询的一部分生成。
发布于 2012-09-19 23:14:50
带双引号的字符串将解析其中的所有变量,因此这是可行的。单引号的字符串不会。
然而,这通常被认为是不安全的。我不确定是否可以使用bindParam方法(我使用PDO,而不是mysqli)来实现这一点,因为它实际上不是一个参数。
https://stackoverflow.com/questions/12497606
复制相似问题