Поиск с несколькими переменными PHP / Mysql - PullRequest
0 голосов
/ 27 марта 2012

Я пытаюсь создать поиск, где столбец и значение являются переменными, используя подготовленные операторы. Запрос, где мне нужна помощь.

$column=$_POST['filter'][0][columnName];
$value = trim($_POST['filter'][0][value]);

$stmt = $mysql->prepare("select * from TABLE WHERE $column like '%$value%'");

Я хочу иметь возможность указывать разные пары столбцов и значений для использования вместе с eachother-, чтобы я мог искать столбец один для одного значения, а также столбец два для другого значения.

спасибо!

1 Ответ

0 голосов
/ 27 марта 2012

Я не думаю, что библиотека PHP mysql подготовила операторы. Является ли ваша переменная $ mysql фактически объектом соединения mysqli или pdo?

С mysqli ваш код будет выглядеть так:

$dbconnection = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
$stmt = $dbconnection->prepare("select * from TABLE WHERE $column like '%?%'");
$stmt->bind_param('s',$value);

Нет способа привязать параметр к имени столбца, что означает, что вы застряли, вставляя $column непосредственно в ваш запрос. Выполнение этого с любым значением, которое пользователь передал вам в POST, является чем-то вроде дыры в безопасности. Поскольку он должен совпадать с одним из имен ваших столбцов, я бы посоветовал сначала проверить его, чтобы убедиться, что он не настроен на что-то другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...