PHP Doku:: Returns number of rows affected during statement execution - function.oci-num-rows.html

Verlauf / Chronik / History: (50) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenOracle OCI8OCI8 Funktionenoci_num_rows

Ein Service von Reinhard Neidl - Webprogrammierung.

Verdiene Geld mit Deiner Homepage oder deinem Blog: Setzte eine Textlinkwerbung und bestimme den Preis selber.
Einfach kostenlos anmelden und einen Platz auf Deiner Homepage anbieten.
Make money with your homepage or blog: Set a text link advertising and declare the price.
Register free of charge and offer a place on your homepage.
OCI8 Funktionen

<<oci_num_fields

oci_parse>>

oci_num_rows

(PHP 5, PECL OCI8 >= 1.1.0)

oci_num_rowsReturns number of rows affected during statement execution

Beschreibung

int oci_num_rows ( resource $statement )

Gets the number of rows affected during statement execution.

Parameter-Liste

statement

A valid OCI statement identifier.

Rückgabewerte

Returns the number of rows affected as an integer, or FALSE on errors.

Beispiele

Beispiel #1 oci_num_rows() example

<?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);
?>

Anmerkungen

Hinweis:

This function does not return number of rows selected! For SELECT statements this function will return the number of rows, that were fetched to the buffer with oci_fetch*() functions.

Hinweis:

In PHP versions before 5.0.0 you must use ocirowcount() instead. This name still can be used, it was left as alias of oci_num_rows() for downwards compatability. This, however, is deprecated and not recommended.


Verdiene Geld mit Deiner Homepage oder deinem Blog: Setzte eine Textlinkwerbung und bestimme den Preis selber.
Einfach kostenlos anmelden und einen Platz auf Deiner Homepage anbieten.
Make money with your homepage or blog: Set a text link advertising and declare the price.
Register free of charge and offer a place on your homepage.
4 BenutzerBeiträge:
- Beiträge aktualisieren...
pluueer at hotmail dot com
20.04.2010 11: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.02.2006 11: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
27.08.2000 3: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.02.2000 17:52
this function can be used with select statement, and also return affected number of rows.
But remember this, use this after fetch statement.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)