Я пытаюсь создать поиск, где столбец и значение являются переменными, используя подготовленные операторы. Запрос – это то, где мне нужна помощь.
$column=$_POST['filter'][0][columnName]; $value = trim($_POST['filter'][0][value]); $stmt = $mysql->prepare("select * from TABLE WHERE $column like '%$value%'");
Я хочу иметь возможность указывать разные пары столбцов и значений для использования в сочетании с eachother, так что я могу искать столбец один для одного значения, а также второй столбец для другого значения.
благодаря!
Я не думаю, что 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, – это немного дыры в безопасности. Поскольку он ограничен одинаковым именем одного из ваших имен столбцов, я бы предложил сначала его проверить, чтобы убедиться, что он не настроен на что-то другое.