$select = "SELECT * FROM {$_DATABASE_TABLE_PREFIX_}toperate_log $where $order_by"; 假如数据库名是abc,完整的sql语句怎么写?这个sql语句是什么意思?

解决方案 »

  1.   

    toperate_log是什么意思?$_DATABASE_TABLE_PREFIX_代表表前缀,怎么用?
      

  2.   

    echo $select ;
    看一下嘛,sql 里有参数! 
      

  3.   

    好的。我贴下原文。大致讲的是php和oracle的分页问题。原文见 http://www.oracle.com/technology/global/cn/pub/articles/oracle_php_cookbook/fuecks_paged.html 1function & paged_result(& $conn, $select, $start_row, $rows_per_page) {
     2
     3$sql = "SELECT
     4            *
     5FROM 
     6            (
     7SELECT
     8r.*, ROWNUM as row_number 
     9FROM
    10( $select ) r
    11WHERE
    12ROWNUM <= :end_row
    13            )
    14WHERE :start_row <= row_number";
    15    
    16$stmt = oci_parse($conn,$sql);
    17    
    18oci_bind_by_name($stmt, ':start_row', $start_row);
    19    
    20// Calculate the number of the last row in the page
    21$end_row = $start_row + $rows_per_page - 1;
    22oci_bind_by_name($stmt, ':end_row', $end_row);
    23    
    24oci_execute($stmt);
    25    
    26// Prefetch the number of rows per page
    27oci_set_prefetch($stmt, $rows_per_page);
    28    
    29return $stmt;
    30
    31}//应用这个方法,写出的临时使用的php语句类似于这样:
    $select = "SELECT * FROM {$_DATABASE_TABLE_PREFIX_}toperate_log $where $order_by";$sql = "SELECT * FROM ( SELECT r.*, ROWNUM as row_number FROM ( $select ) r WHERE ROWNUM <= ".($start + $limit)." ) WHERE $start <= row_number";
      

  4.   

    带$的是php中的变量,$_DATABASE_TABLE_PREFIX_是数据库生成时使用的表名前缀,是为了将多个相同结构名称的表安装到同一数据库而使用的。
      

  5.   

    你输出一下$select 再看一下数据库中的表就知道了,“{$_DATABASE_TABLE_PREFIX_}toperate_log”合起来才是完整的表名。
    表名可能是aaa_toperate_log或bbb_toperate_log,其中aaa_或bbb_就是$_DATABASE_TABLE_PREFIX_对应的值,一般是在一些开源系统安装时设置的。
      

  6.   

    是不是这样 ”abc.table1“ ?
      

  7.   

    输出$select的结果:SELECT * FROM toperate_log