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
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($stmt, OCI_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_num_rows
sontung2603 at yahoo dot com
17-Feb-2006 10:35
17-Feb-2006 10:35
justin at flakmag dot com
27-Aug-2000 01:59
27-Aug-2000 01: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 04:52
16-Feb-2000 04:52
this function can be used with select statement, and also return affected number of rows.
But remember this, use this after fetch statement.
