我想將參數綁定到在PHP中使用ODBC的UPDATE語句,但SQL語句失敗,我不能爲我的生活找出原因。我試過谷歌搜索,但似乎很少有關於使用ODBC與PHP的信息,而不是像MySQLi和PDO。將PHP變量綁定到ODBC SQL UPDATE語句
我用參數綁定找到的大多數示例都使用SELECT語句,但據我所知,應該沒有什麼區別。我找到的最接近的答案是here on stackoverflow。據我所知,他們正在做我在做的事情,但我一直在收到錯誤。這裏是我的代碼:
$updQuery = "UPDATE Demographic SET dmg_FirstName=? WHERE dmg_ID=?";
$update = odbc_prepare($connect, $updQuery);
$fname = $_POST['firstname'];
$pID = 145100007;
$updResult = odbc_execute($update, array($fname, $pID)) or die (odbc_errormsg());
這是我不斷收到上述代碼中的錯誤:
Warning: odbc_execute(): SQL error: [Microsoft][ODBC Driver Manager] SQL data type out of range, SQL state S1004 in SQLBindParameter in C:\xampp\htdocs\work\ajaxdd.php on line 44
代碼的工作,當我刪除參數綁定,所以如果出現最壞最壞我可以嘗試盡我所能清理數據,但這顯然不是可取的。
查找錯誤消息[here](http://odbc.net/api/index.shtml?SQLGetTypeInfo),看起來好像這可能是您使用的ODBC驅動程序中的錯誤(它看起來像是PHP正在使用的數據*類型*標識符被拒絕,而不是您的實際值)。 ODBC準備的語句在這方面非常有限,因爲所有內容都被綁定爲一個字符串。理想情況下,您會爲特定的RDBMS使用PHP API /驅動程序 - 這不可能嗎? – DaveRandom 2013-04-22 13:38:37
不幸的是,這似乎確實如此。我必須連接到一個4D的SQL服務器,它有一個PHP驅動程序,但它已過時,似乎已被放棄,我實際上找不到可用於最新PHP版本的驅動程序。 – Roy 2013-04-22 13:50:17
你可以嘗試使用PDO ODBC嗎? http://php.net/manual/en/ref.pdo-odbc.php – silkfire 2013-04-22 13:52:40