odbc_execute():提供的资源不是使用 PHP 的有效 ODBC 结果资源

问题描述 投票:0回答:1

我正在尝试使用 PHP 连接到 Oracle 数据库。这就是我的代码当前的样子:

$user = "myuser"; 
$password = "myuser";
$con = odbc_connect("Driver={Devart ODBC driver for Oracle};Direct=true;Host=host;Port=1521;Service Name=serv;User ID=myuser;Password=myuser", $user, $password);

$insercion = "INSERT INTO `table` (`attr1`, `attr2`, `attr3`) VALUES (?, ?, ?)";
**$rs = odbc_execute($con, array($attr1, $attr2, $attr3));**

if($rs)
    echo "Inserted";

我收到以下错误:

警告:odbc_execute():提供的资源不是第 63 行 C:\xampp\htdocs\ddsi\server unciones.php 中的有效 ODBC 结果资源

第63行是上面代码中**之间的行。我错过了什么吗?整个 Oracle 的事情看起来一团糟......提前致谢!

附加信息

我在 OBDC 数据源(32 位)下创建了一个新的系统 DSN。当点击“测试连接”时,它会显示“连接成功”。

执行

var_dump($con);
显示以下内容:

资源(5)类型(odbc链接)

php oracle apache
1个回答
0
投票

我在寻找另一个问题时偶然发现了这个老问题。所以我想我还是回复一下吧。

当您在准备好的语句中使用参数时,您不能省略代码的

odbc_prepare
部分。这应该没问题:

$user = "myuser"; 
$password = "myuser";
$con = odbc_connect("Driver={Devart ODBC driver for Oracle};Direct=true;Host=host;Port=1521;Service Name=serv;User ID=myuser;Password=myuser", $user, $password);

$insercion = "INSERT INTO `table` (`attr1`, `attr2`, `attr3`) VALUES (?, ?, ?)";
$stmt = odbc_prepare($con, $insercion);
$rs = odbc_execute($stmt, array($attr1, $attr2, $attr3));

if($rs)
    echo "Inserted";
© www.soinside.com 2019 - 2024. All rights reserved.