Conn.php页面:<?php
$con = oci_connect("finaltest","finaltestpw","(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.101.72)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ENGDB01)
    ))
  ");
if (!$con) 
{
die('Could not connect: ' . oci_error());
}
//echo "This is a test!";
?>经测试,此页面没有问题。
登录页面问题部分:include('conn.php');

    $sql = "SELECT * FROM \"BadDut.user\" WHERE \"Account\"='".strtolower($_POST["username"])."'" ; 
    //echo $sql;
    $result = oci_parse($con,$sql);
    oci_execute($result);
    //echo $result;
    oci_commit($con);
    echo oci_num_rows($result);
    if (oci_num_rows($result) == 0)
   {
    echo "<Script language='JavaScript'> alert('Username error!');</Script>";
    echo "<script>location.href='index.php'</script>";
    oci_free_statement($result);
    oci_close($con);
    exit;
   }
问题描述:$sql输出正常,输出结果:SELECT * FROM "BadDut.user" WHERE "Account"='sysop'
          oci_num_rows($result)的输出结果为 0 。请问哪里出了问题,知道的朋友知会一声。谢谢!

解决方案 »

  1.   

    你的sql语句写的有问题 你把你的Account字段的引号去掉 就行了 它不需要加引号
      

  2.   

    解析出来:SELECT * FROM "BadDut.user" WHERE "Account" = 'sysop';
    没有问题,因为我的是oracle的数据库,不是mysql。
      

  3.   

    重新贴一下:
    conn.php:<?php 
    $con = oci_connect("finaltest","finaltestpw","(DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.101.72)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SERVICE_NAME = ENGDB01) 
        )) 
      "); 
    if (!$con) 

    die('Could not connect: ' . oci_error()); 

    //echo "This is a test!"; 
    ?> 
    login.php:include('conn.php');     $sql = "SELECT * FROM \"BadDut.user\" WHERE \"Account\"='".strtolower($_POST["username"])."'" ; 
        //echo $sql; 
        $result = oci_parse($con,$sql); 
        oci_execute($result); 
        //echo $result; 
        oci_commit($con); 
        echo oci_num_rows($result); 
        if (oci_num_rows($result) == 0) 
      { 
        echo " <Script language='JavaScript'> alert('Username error!'); </Script>"; 
        echo " <script>location.href='index.php' </script>"; 
        oci_free_statement($result); 
        oci_close($con); 
        exit; 
      

  4.   

    还是自己把问题解决了,oci函数和mysql函数还是有些区别的。下面贴出代码,各位看看有没有可以改进的地方?<?php
    session_start();
    //session_unregister('bs_Account'); 
    //session_unregister('bs_Role');  echo 'Login...';

    if ($_POST['username'] == "")
    {
    echo "<Script language='JavaScript'> alert('Please enter username');</Script>";
    echo "<script>location.href='index.php'</script>";
    exit;
    }

    include('conn.php');

    $sql = "SELECT * FROM \"BadDut.user\" WHERE \"Account\" = '".strtolower($_POST['username'])."'" ; 
    //echo $sql;
        $result = oci_parse($con,$sql);
        oci_execute($result);
        //echo $result;
        //oci_commit($con);
        //echo oci_fetch($result);
    if (oci_fetch($result) == 0)
    {
    echo "<Script language='JavaScript'> alert('Username error!');</Script>";
    echo "<script>location.href='index.php'</script>";
    oci_free_statement($result);
    oci_close($con);
    exit;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////
    $sql = "SELECT * FROM \"BadDut.user\" WHERE \"Account\" = '".strtolower($_POST['username'])."'" ; ///
    $result = oci_parse($con,$sql);                                                                   ///
      oci_execute($result);                                                                             ///
    $row = oci_fetch_array($result);                                                                  ///
    //print_r($row);                                                                                  ///
    ///////////////////////////////////////////////////////////////////////////////////////////////////////

    if ($row['Password'] == ($_POST['passwd']))
    {
    $_SESSION['bs_Account'] = $row['Account'];
    $_SESSION['bs_Role'] = $row['Role'];
    $_SESSION['bs_PerferListCount'] = $row['PerferListCount'];
    oci_free_statement($result);
    oci_close($con);
    echo "<script>location.href='switch-status.php'</script>";
    }
    else
    {
    echo "<Script language='JavaScript'> alert('Password error!');</Script>";
    oci_free_statement($result);
    oci_close($con);
    echo "<script>location.href='index.php'</script>";
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Login...</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    </head>
    <body>
    </body>
    </html>