在 SELECT 语句中插入一个变量

insert a variable in SELECT statement

我有这个代码:

$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,username,email,您可以像这样附加新的:

$params .= ',telephone';

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

您可以阅读一些内容 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。操作目标是 #,这意味着您将把它发送到发送它的同一页面。并且您将变量 $_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>';
?>

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

而不是:

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

尝试:

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