close
有支 PHP 程式在 Windows 主機上跑得好好的,但在 Linux 會出現問題。
程式出錯的地方是用 PHP PDO 連線到 Sybase,資料會無法取回。把 PDOStatement 的 errorInfo() 印出來,看到錯誤訊息是不允許將 VARCHAR 轉型為 NUMERIC。
Array (
[0] => HY000
[1] => 20018
[2] => Implicit conversion from datatype 'VARCHAR' to 'NUMERIC' is not allowed. Use the CONVERT function to run this query.
)
在 bindValue 時設定成 INT 也沒用:
$result->bindValue(':year1', $param_year, PDO::PARAM_INT);
最後的解決方式是在 SQL 裡用 cast 先把值轉型,類似像這樣:
SELECT * FROM DATA WHERE DATA_YEAR=CAST(:year1 AS INT)
全站熱搜
留言列表