Поиск с помощью нескольких переменных PHP / Mysql

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

$column=$_POST['filter'][0][columnName]; $value = trim($_POST['filter'][0][value]); $stmt = $mysql->prepare("select * from TABLE WHERE $column like '%$value%'"); 

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

благодаря!

Related of "Поиск с помощью нескольких переменных PHP / Mysql"

Я не думаю, что 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, – это немного дыры в безопасности. Поскольку он ограничен одинаковым именем одного из ваших имен столбцов, я бы предложил сначала его проверить, чтобы убедиться, что он не настроен на что-то другое.