将PHP变量绑定到ODBC SQL UPDATE语句


Binding PHP variables to ODBC SQL UPDATE statement

我试图在PHP中使用ODBC将参数绑定到UPDATE语句,但SQL语句失败,我无法为我的生命找出原因。我试过谷歌搜索,但似乎很少有关于使用ODBC与PHP,而不是像MySQLi和PDO。

我发现的参数绑定的大多数例子都使用SELECT语句,但据我所知,这应该没有什么区别。我在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

当我删除参数绑定时,代码可以工作,所以如果最坏的情况发生,我可以尝试尽可能地清理数据,但这显然不是可取的。

这可能意味着您正在尝试插入一个大于该整数列允许的ID。首先尝试验证是否存在这种情况。dmg_ID的类型是什么?145100007是一个相当高的数字,所以我怀疑这可能是罪魁祸首。