Проблемы с передачей параметра в sql-запрос, если в нем есть пробелы. КодPHP PDO PostgreSQL issue
$statement="select di_timestamp, di_item_value
from data_item
where
fk_fc_id=(select fc_id
from field_column
where
fc_description ilike :sensor
and
fk_mds_id=(select mds_id
from monitored_data_set
where fk_pa_id=(select pa_id
from pilot_ambient
where
pa_ambient_name ilike :room
and
fk_sp_id=(
select sp_id
from School_Pilot
where sp_description ilike :name
)
)
)
)";
$query = $databaseConn->prepare($statement);
$query->execute(array(':sensor'=>$sensor,':room'=>$room,':name' => '%'.$school.'%'));
Однако, если датчик содержит пробелы, запрос не выполняется. Как я могу это решить? Я пробовал помещать кавычки в параметр, кавычки в запросе, но ничего не работает.
Параметры подготовленных операторов PDO никогда не нуждаются в котировках - параметры не заменяются «на месте», запрос «готов» к РСУБД (вроде создания процедуры), и он вызывается с использованием параметров (в качестве параметров перешли к процедуре). –
Однако он производит его, он производит его неправильно, приводит цитаты или нет кавычек. Кто-нибудь знает, как это решить? – James
_query failed_ означает отклонение с сообщением об ошибке (какой?) Или что результаты не являются тем, что вы ожидаете? –