当我使用oci_fetch_array和计数我得到22(我认为这意味着它得到两行)这是错误的应该是11(11是列数)和 当我使用oci_fetch_row我得到1这是正确的。 谁能告诉我为什么会发生这种情况?计数从查询返回的行
$sql = "SELECT * FROM USERS WHERE USERNAME= :uname AND PWORD = :pword";
$stmt = oci_parse($c, $sql);
$uname=$_POST['uname'];
$pword=$_POST['pword'];
oci_bind_by_name($stmt, ":uname",$uname);
oci_bind_by_name($stmt, ":pword",$pword);
oci_execute($stmt);
$res = oci_fetch_array($stmt);
$res2 = oci_fetch_row($stmt);
$num = count($res);
$num2 = count($res2);
echo $num . "<br/>";
echo $num2 . "<br/>";
谢谢,只是发现我自己,它的工作原理,使用起来更简单,但不明白为什么我得到一个正确的答案和错误的答案,但无论如何,再次感谢。 – clonebaby59
这应该和你的'oci_num_rows'一样返回,但是这样做的可怕性很低。 –
@ clonebaby59 - 我的印象是,你还没有理解你到目前为止的两个答案,这两个答案都是正确的。你的代码没有得到正确的答案,因为它甚至没有得到一个行数;这是一个列计数。 –