我正在尝试使用 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链接)
我在寻找另一个问题时偶然发现了这个老问题。所以我想我还是回复一下吧。
当您在准备好的语句中使用参数时,您不能省略代码的
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";