downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

oci_parse> <oci_num_fields
[edit] Last updated: Fri, 25 May 2012

view this page in

oci_num_rows

(PHP 5, PECL OCI8 >= 1.1.0)

oci_num_rows文の実行で作用された行数を取得する

説明

int oci_num_rows ( resource $statement )

文の実行で作用された行数を取得します。

パラメータ

statement

有効な OCI ステートメント ID。

返り値

作用された行の数を表す整数値、あるいはエラー時に FALSE を返します。

例1 oci_num_rows() の例

<?php
$conn 
oci_connect("scott""tiger");

$stmt oci_parse($conn"create table emp2 as select * from emp");
oci_execute($stmt);
echo 
oci_num_rows($stmt) . " rows inserted.<br />";
oci_free_statement($stmt);

$stmt oci_parse($conn"delete from emp2");
oci_execute($stmtOCI_DEFAULT);
echo 
oci_num_rows($stmt) . " rows deleted.<br />";
oci_commit($conn);
oci_free_statement($stmt);

$stmt oci_parse($conn"drop table emp2");
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

注意

注意:

この関数は、select が返す行の数は 返しません ! SELECT 文の場合、この関数は oci_fetch*() 関数によってバッファに取得された行数を返します。

注意:

PHP バージョン 5.0.0 以前では、代わりに ocirowcount() を使用しなければなりません。 まだこの名前を使用することができ、下位互換性のため oci_num_rows() への別名として残されていますが、 推奨されません。



oci_parse> <oci_num_fields
[edit] Last updated: Fri, 25 May 2012
 
add a note add a note User Contributed Notes oci_num_rows
pluueer at hotmail dot com 20-Apr-2010 02:51
If you want to return te number of rows without fetching all data it might by more efficient to use this code (correct me if I'm wrong):

$sql_query = 'SELECT COUNT(*) AS NUMBER_OF_ROWS FROM (' . $your_query . ')';

$stmt= oci_parse($conn, $sql_query);

oci_define_by_name($stmt, 'NUMBER_OF_ROWS', $number_of_rows);

oci_execute($stmt);

oci_fetch($stmt);

echo $number_of_rows;
sontung2603 at yahoo dot com 17-Feb-2006 02:35
hello,
here'is an example  who works:

$connexion = ("name_bd","pass_db");  //set up connexion on database
$query="select * from order ";   // query for the test
$parse = ociparse($connexion,$query);   // parse query
ociexecute($pase);   // execute the query on server (on temporary memory)
ocifetchstatement($pase,$tab_result);  // the result will be fetched in the table $tab_result
echo ocirowcount($parse);  // show the numbers of result

/**** and if you want to posting the results of query ***/
$count = count($tab_result);
for($i=0;$i<=$count;$i++)
{
     echo $tab_result[$i]."<br>";
}

you can also do it with the function ociresult():

while(ocifetch($parse))
{
    echo ociresult($parse,"[capital letter of the name of feild that you want to show on naviator]");
}

Attention : all of name of tables on oracle database are in capital letter when you use an other application for connect to it.
example :

to select the field no_client on table client, on your script of posting, you should write :

echo ociresult($parse,"NO_CLIENT");

not :

echo ociresult($parse,"no_client");

//end

Enjoy
justin at flakmag dot com 26-Aug-2000 06:59
It appears the easiest workaround if you want to get numrows without moving to the end of the result set is to use:

numrows = OCIFetchStatement(...);
OCIExecute(...);

So that the execute re-executes the query. It's horribly inefficient to query twice, but it works.
batti at digito dot com 16-Feb-2000 08:52
this function can be used with select statement, and also return affected number of rows.
But remember this, use this after fetch statement.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites