У меня была проблема в последние несколько дней, когда я сузил проблему, как показано ниже. Прохождение параметров отлично работает, если я не использую его с пользовательской функцией расстояния. Может ли кто-нибудь сказать мне, что я делаю неправильно? На данный момент я просто обрабатываю поле вручную и жестко кодирую его в запрос.Передача дезинфицированного ввода с функцией не работает
WORKS (возвращает правильные результаты):
$sth = $db->prepare("SELECT * FROM providers WHERE distance('42.8','-73.9',lat,lon)<25");
$sth->execute();
не работает (возвращает все поставщики):
$sth = $db->prepare("SELECT * FROM providers WHERE distance('42.8','-73.9',lat,lon)<:radius");
$sth->execute(array(":radius" =>25));
. Считаете ли вы, что это так? (Я должен был подумать добавить это как тег). SQLite имеет свободную систему типов данных. –
Хммм, я не уверен (не знаком с SQLite), но если бы я сделал предположение, возможно, тип данных имеет значение, потому что вы используете подготовленный оператор. Я бы предположил, что он имеет меньше общего с системой данных типа SQLite и больше связан с PDO, требующим более подробной информации о данных, с которыми он работает. – Crackertastic
Хорошо ... Я собираюсь быть АФК на некоторое время ... но я попробую bind_param() позже сегодня вечером и отчитаюсь. –