вставить переменную в операторе SELECT

0

У меня есть этот код:

$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

  • 0
    Внедрение переменных непосредственно в запрос - очень плохая идея . Читайте о внедрении SQL.
Теги:
redbean

3 ответа

0

Я думаю, что вы должны использовать двойные кавычки, чтобы разрешить значение переменной.

вместо:

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

Пытаться:

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

Если параметры имеют id,username,email формата id,username,email вы можете просто добавить новые, например, так:

$params .= ',telephone';

Имейте в виду: это очень небезопасный способ подключения к вашей базе данных, читайте о SQL Incjection

0

Вы можете прочитать немного об этом здесь.

Что вам нужно сделать, это отправить запрос 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);
*/
?>

объяснение

HTML

Эта часть кода представляет собой форму, где вы устанавливаете метод как запрос get. Назначением действия является #, что означает, что вы отправляете его на ту же страницу, с которой оно было отправлено. И вы определяете переменную $_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>';
?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню