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

时间:2015-09-02 12:11:59

标签: php mysql oracle odbc oci

使用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。我很难过为什么。奇怪的是:tablename TAB.LE适用于ODBC连接;但是,在MS Access中查看时,它显示为TAB_LE。我试图在OCI连接中使用这种不同的表示法,但无济于事。

1 个答案:

答案 0 :(得分:1)

oci_execute()执行先前从oci_parse().

返回的语句
$stid = oci_parse($conn, $query);

所以改变

$res = oci_execute($query);

  $res = oci_execute($stid);