過去幾天我一直有一個問題,我縮小了問題的範圍,如下所示。如果我不使用自定義距離函數,參數的傳遞將正常工作。誰能告訴我我做錯了什麼?截至目前,我只是手動清理該字段並將其硬編碼到查詢中。通過功能傳遞消毒輸入不起作用
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),但是,如果我要做出一個假設,或許數據類型很重要,因爲您正在使用準備好的語句。我猜想,它與SQLite數據類型系統有關較少,更多的是與PDO想要獲得關於它正在使用的數據的更多細節有關。 – Crackertastic
好吧......我將會AFK一段時間...但我會在今晚晚些時候嘗試bind_param()並報告回來。 –