#php #variables #bind #prepared-statement
#php #переменные #привязать #подготовленная инструкция
Вопрос:
Я хочу создать подготовленный stmt, такой как
"SELECT id,latitude,longitude
FROM sometable WHERE
(3437.74677 * ACOS(SIN(latitude_radians) * SIN(?)
COS(latitude_radians)*COS(?) * COS(longitude_radians - ?))) <= ?";
в PHP. Where
предложение является функцией значений столбцов и переменных привязки
но как я должен связать значения. Или это вообще законный подготовленный stmt?
Заранее спасибо, -v-
Комментарии:
1. Я не уверен, в чем вопрос: вы уже пробовали привязывать переменные, но это не сработало (сообщение об ошибке?) или вы спрашиваете, как попробовать это для вас, вместо того, чтобы делать это самостоятельно?
2. Хм, на мой взгляд, это вполне допустимый подготовленный оператор PDO. Просто любопытно: разве это не Haversine? Если да, знаете ли вы, что вы используете nautic miles там? ^^
Ответ №1:
Я не вижу здесь никакой проблемы.
Смотрите: Подготовленные инструкции PHP.
Чрезвычайно минимальный образец:
$stmt = $dbh->prepare( $QUERY );
$stmt->execute( $arguments_array )
Ответ №2:
Извините за неясность. Насколько я понимаю, ниже приведен пример PHP prepared stmt,
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name'])))
Теперь предложение where всегда является простым, column = ? AND column2 = ?
. В моем случае, хотя его функция и не сработала, когда присвоены значения переменным bind. Я снова восстановлю ошибку и опубликую ее.
Тогда мне было интересно, законно ли вообще иметь функцию имен столбцов и привязывать переменные в предложении where.