Php 在SELECT语句中插入变量

Php 在SELECT语句中插入变量,php,mysql,redbean,Php,Mysql,Redbean,我有以下代码: $params = $_GET["params"]; print $params; if ($_SERVER['REQUEST_METHOD'] == "GET") { --->//$result = R::getAll( 'SELECT $params FROM user'); } elseif ($_SERVER['REQUEST_METHOD'] == "POST") { } echo json_encode($result); 如何正确地将$params变量设

我有以下代码:

$params = $_GET["params"];
print $params;
if ($_SERVER['REQUEST_METHOD'] == "GET") {
--->//$result = R::getAll( 'SELECT $params FROM user');
} elseif  ($_SERVER['REQUEST_METHOD'] == "POST") {

}
echo json_encode($result);

如何正确地将$params变量设置到我的响应中。我通过RedBeanPhP发出请求

如果参数的格式为id、用户名、电子邮件,您只需添加新参数,如下所示:

$params .= ',telephone';

请记住:这是一种非常不安全的连接数据库的方式,请阅读

您可以阅读一些有关它的内容

您需要做的是发送一个get请求,其中包含您要查找的变量。它可能是这样的:

<form action="#" method="get">
  Some variable
  <input type="text" name="params" value="Foobar"><br>
  <input type="submit" value="Submit">
</form>


<?php
$params = $_GET["params"];
echo '<pre>';
print_r($params);
echo '</pre>';

/* This is redundant, considering your question
if ($_SERVER['REQUEST_METHOD'] == "GET") {
--->//$result = R::getAll( 'SELECT $params FROM user');
} elseif  ($_SERVER['REQUEST_METHOD'] == "POST") {

}
echo json_encode($result);
*/
?>
PHP


我认为应该使用双引号来解析变量值

而不是:

尝试:


将变量直接注入查询是一个非常糟糕的主意。阅读SQL注入。
<form action="#" method="get">
  Some variable
  <input type="text" name="params" value="Foobar"><br>
  <input type="submit" value="Submit">
</form>
<?php
$params = $_GET["params"]; // This sets the `params`-get-variable.
echo '<pre>';
print_r($params); // This prints it, so it looks pretty. :-)
echo '</pre>';
?>
$result = R::getAll( 'SELECT $params FROM user');
$result = R::getAll("SELECT $params FROM user");