2013-05-16 292 views
0

我有这个问题的代码:为什么oci_num_rows总是返回0值?

<?php 
    include 'connection.php'; 

    if (oci_execute ($stmt)) { 
     //Execute cursor 
     oci_execute($result); //Or you can return the cursor. 
    } 


    $count=oci_num_rows($result); 
    echo $count; 
    if ($count != 1) 
    { 
    echo $count; 
    echo "No record"; 
    } 
    else 
    { 

    while($objResult = oci_fetch_array($result, OCI_RETURN_NULLS+OCI_ASSOC)){ 
    <tr> 
    <td><div align="center" class="style4"><?php echo $objResult[0]; ?></div></td> 
    <td><div align="center" class="style4"><?php echo $objResult[1]; ?></div></td> 
    <td><div align="center" class="style4"><?php echo $objResult[2]; ?></div></td> 
    <td><div align="center" class="style4"><?php echo $objResult[3]; ?></div></td> 
    <td><div align="center" class="style4"><?php echo $objResult[4]; ?></div></td> 
    <td><div align="center" class="style4"><?php echo $objResult[5]; ?></div></td> 
    <td><div align="center" class="style4"><?php echo $objResult[6]; ?></div></td> 
    <td><div align="center" class="style4"><?php echo $objResult[7]; ?></div></td> 

    <td><div align="center" class="style4"><a href="updateInsForm.php?insid=<?php echo $objResult[0]; ?>">EDIT</a></div></td> 
    <td><div align="center" class="style4"><a href="deleteInsForm.php?insid=<?php echo $objResult[0]; ?>">DELETE</div></td> 

    <?php 
    } 
    } 


    oci_close($objConnect); 
?> 

的问题是,当我尝试输入正确的ID和密码,它返回的行作为0..why?

+2

您的$ stmt定义在哪里?它的价值是什么? –

+0

什么'oci_execute($ stmt)'做? – Voitcus

+0

ohh我跳过查询的代码..它是$结果 – user2234937

回答

0

问题是,num_rows函数返回的是取得的项目数量,而不是执行的结果。从手动:

http://php.net/manual/en/function.oci-num-rows.php

注: 此函数不返回选定的行数!对于SELECT语句,此函数将返回使用oci_fetch *()函数提取到缓冲区的行数。

希望这会有所帮助。

相关问题