【问题标题】:insert a variable in SELECT statement在 SELECT 语句中插入变量
【发布时间】:2019-02-06 11:24:55
【问题描述】:

我有这个代码:

$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提出请求

【问题讨论】:

  • 将变量直接注入查询是一个非常糟糕的主意。阅读有关 SQL 注入的信息。

标签: php mysql redbean


【解决方案1】:

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

代替:

$result = R::getAll( 'SELECT $params FROM user');

试试:

$result = R::getAll("SELECT $params FROM user");

【讨论】:

    【解决方案2】:

    如果参数的格式为id,username,email,您可以像这样附加新的:

    $params .= ',telephone';
    

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

    【讨论】:

      【解决方案3】:

      您可以阅读一些关于它的信息here

      您需要做的是发送一个包含您所追求的变量的获取请求。它可能看起来像这样:

      <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);
      */
      ?>
      

      说明

      HTML

      这部分代码是一个表单,您将方法设置为get-request。 action-destination 是#,这意味着您将它发送到发送它的同一页面。您将变量$_GET['params'] 定义为等于Foobar。当你按下提交按钮时,它就被提交了。

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

      PHP

      <?php
      $params = $_GET["params"]; // This sets the `params`-get-variable.
      echo '<pre>';
      print_r($params); // This prints it, so it looks pretty. :-)
      echo '</pre>';
      ?>
      

      【讨论】:

        猜你喜欢
        • 2016-09-01
        • 2015-01-07
        • 2014-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-24
        • 1970-01-01
        相关资源
        最近更新 更多