oci_bind_by_name无法在PHP中运行

时间:2011-02-07 13:31:55

标签: php oracle database-connection

任何人都可以指导我使用oci_bind_by_name。我写了这段代码:

$connection = initDB();
$validation_query = "SELECT * from admin where admin_id= :uid and password= :pwd";
$s = oci_parse($connection, $validation_query);
oci_bind_by_name($s, ':uid', $id);
oci_bind_by_name($s, ':pwd', $pass);
$res=oci_execute($s, OCI_DEFAULT);
$result_row = oci_fetch_array($s, OCI_ASSOC);

但是稍微修改代码并动态生成查询,它就会开始工作。

$connection = initDB();    
$validation_query = "SELECT * from admin where admin_id= '".$id."' and password= '".$pass."'";
$s = oci_parse($connection, $validation_query);
//oci_bind_by_name($s, ':uid', $id);
//oci_bind_by_name($s, ':pwd', $pass);
$res=oci_execute($s, OCI_DEFAULT);
$result_row = oci_fetch_array($s, OCI_BOTH);

我对此一无所知,已经搜索过论坛和互联网。请帮助我。

1 个答案:

答案 0 :(得分:0)

GOT IT! 很抱歉打扰你们......我犯了一个愚蠢的错误。

代码行:$result_row = oci_fetch_array($s, OCI_BOTH)正在两个代码中执行。但在第二种情况下,$result_row[0]返回值,其中$result_row[0]在第一种情况下失败。

这又是因为我使用了不同的MODES来获取数据。第一种情况是OCI_ASSOC,第二种情况是OCI_BOTH。

所以最后当我写$result_row['ID']时,我得到了理想的结果。

干杯!