php - Oracle OCI 语句与 ODBC 语句的差异。 (php)

标签 php mysql oracle odbc oracle-call-interface

当使用 PHP 连接到数据库时,我一直使用具有以下查询的 ODBC 连接:

"SELECT * FROM TAB.LE WHERE TAB.LE.Id = 1";

表名是 TAB.LE。 此处不需要用于进行查询的代码 - 但它可以正常返回正确的结果。当我使用 OCI 连接时,相同的查询失败:

$conn = oci_connect("username", "password", "database");

if($conn){

$query = "SELECT * FROM TAB.LE WHERE TAB.LE.Id = 1";
$stid = oci_parse($conn, $query);
$res = oci_execute($query);

if($res){
     echo "success";
    }
else{
     echo "failed";
    }
}

我经常在屏幕上看到 failed。我不知道为什么。奇怪的是:表名 TAB.LE 适用于 ODBC 连接;然而,当在 MS Access 中查看时,它显示为 TAB_LE。我曾尝试在 OCI 连接中使用这种不同的表示法,但无济于事。

最佳答案

oci_execute()执行先前从 oci_parse() 返回的语句。

$stid = oci_parse($conn, $query);

所以改变

$res = oci_execute($query);

  $res = oci_execute($stid);

关于php - Oracle OCI 语句与 ODBC 语句的差异。 (php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32352814/

相关文章:

MySQL SELECT 增量计数器

带组的Mysql查询

sql - PLS-00201 : identifier UTIL_FILE must be declared

sql - Oracle中分隔日期的语法是什么

php - SOAP 故障 : object not set to an instance of an object

php - PDO 行数困惑

javascript - 以串行方式发布多个 Ajax

javascript - 在 x 次页面浏览后运行 javascript

PHP 数据库从 MySQL 检索,其中 user_name 保存在 session 中

sql - 将单个数据行从表更新到另一个