任何人都可以指导我使用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);
我对此一无所知,已经搜索过论坛和互联网。请帮助我。
答案 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']
时,我得到了理想的结果。
干杯!