0
如果參數中有空格,將參數傳遞給sql查詢會出現問題。代碼是PHP PDO PostgreSQL問題
$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準備的語句參數應該永遠不需要引號 - 參數不會被替換「就地」查詢由RDBMS「準備」(類似於創建過程)並且使用參數調用它(作爲參數傳遞給程序)。 –
但是,它正在生產,它生產錯誤,報價或沒有報價。有誰知道如何解決這個問題? – James
_query failed_意味着拒絕並顯示錯誤消息(哪一個?),或者結果不符合您的期望? –