繁体   English   中英

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

[英]ODBC INSERT/UPDATE statements trigger internal server error (500)

我目前正在构建一个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文件的索引文件),没有一个它们是只读的。

另外,我授予匿名用户修改数据库文件夹内容的权限(我很拼命),没有效果。

我认为SQL语句中没有错误,因为我尝试添加语法错误,但又得到了关于错误之处的描述性错误。

我不能使用odbc_error($connection); 因为在到达那条线之前,我收到一个内部服务器错误。

有什么建议可能有什么问题吗? 我会为正确方向的每一个提示而感激:)

您需要查看ODBC连接。 根据该服务器上Windows的版本,您想打开Data Sources (ODBC) 选择您正在使用的别名。 右键单击并选择“配置/编辑”(可能有一个按钮显示“配置”)。 检查未选中Read Only并且选中Execute Proc过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM