ODBC INSERT / UPDATE语句触发内部服务器错误(500)

时间:2015-05-09 07:14:00

标签: php odbc

我目前正在构建一个PHP站点,它必须通过ODBC连接连接到数据源。数据源不常见,驱动程序由客户提供(不,他们不知道它是如何工作的:) :)。

我能够成功连接到测试数据源,SELECT语句工作得很好。例如,这有效:

$resource = odbc_prepare($connection,'SELECT * FROM [TABLE] WHERE EMAIL=?');
$success = odbc_execute($res,array('some@email');

我能够从数据库中读取任何信息。但是,INSETR / UPDATE语句似乎不起作用:

$resource = odbc_prepare($connection,'UPDATE [TABLE] SET EMAIL=? WHERE ID=?');
$success = odbc_execute($res,array('some@email',1);

上述语句返回内部服务器错误。它只说,错误与odbc_execute()命令相关联。我查看了Apache错误日志,但没有关于可能导致错误的信息。

我检查了存储测试数据库的文件夹(因为数据库只是一堆没有扩展名和.IDX文件的文件。我的猜测是.IDX文件是实际DB文件的索引文件)并且没有一个是只读的。

另外,我给了匿名用户修改DB文件夹内容的权限(我很绝望),没有效果。

我不认为SQL语句中存在错误,因为我尝试添加语法错误,并且我找回了有关错误的描述性错误。

我无法使用odbc_error($connection);,因为在我到达该行之前我收到内部服务器错误。

有什么建议可能有什么不对吗?我会很感激每一个正确方向的暗示:)

1 个答案:

答案 0 :(得分:1)

您需要查看ODBC连接。根据您在该服务器上的Windows版本,您要打开Data Sources (ODBC)。选择您正在使用的别名。右键单击并选择配置/编辑(可能有一个按钮说配置)。检查是否勾选了Read Only并勾选了Execute Proc