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");