<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.mysql.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'it',
  ),
  'this' => 
  array (
    0 => 'function.mysql-affected-rows.php',
    1 => 'mysql_affected_rows',
    2 => 'Get number of affected rows in previous MySQL operation',
  ),
  'up' => 
  array (
    0 => 'ref.mysql.php',
    1 => 'MySQL Funzioni',
  ),
  'prev' => 
  array (
    0 => 'ref.mysql.php',
    1 => 'MySQL Funzioni',
  ),
  'next' => 
  array (
    0 => 'function.mysql-client-encoding.php',
    1 => 'mysql_client_encoding',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/mysql/functions/mysql-affected-rows.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.mysql-affected-rows" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">mysql_affected_rows</h1>
  <p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">mysql_affected_rows</span> &mdash; <span class="dc-title">Get number of affected rows in previous MySQL operation</span></p>

 </div>

 <div id="function.mysql-affected-rows-refsynopsisdiv">
  <div class="warning"><strong class="warning">Avviso</strong>
   <p class="para">Questa enstensione  deprecata da PHP 5.5.0, e sarà rimossa in futuro.
Al suo posto, usare l&#039;estensione <a href="book.mysqli.php" class="link">MySQLi</a> o <a href="ref.pdo-mysql.php" class="link">PDO_MySQL</a>.
Vedere anche la guida <a href="mysqlinfo.api.choosing.php" class="link">MySQL: scelta dell&#039;API</a> e
le <a href="faq.databases.php#faq.databases.mysql.deprecated" class="link">FAQ relative</a> per ulteriori informazioni. 
Le alternative a questa funzione includono:</p>
   <ul class="simplelist">
    <li><span class="function"><a href="mysqli.affected-rows.php" class="function">mysqli_affected_rows()</a></span></li>
    <li><span class="methodname"><a href="pdostatement.rowcount.php" class="methodname">PDOStatement::rowCount()</a></span></li>
   </ul>
  </div>
 </div>

 <div class="refsect1 description" id="refsect1-function.mysql-affected-rows-description">
  <h3 class="title">Descrizione</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>mysql_affected_rows</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> <code class="parameter">$link_identifier</code><span class="initializer"> = NULL</span></span>): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>

  <p class="simpara">
   Get the number of affected rows by the last INSERT, UPDATE, REPLACE
   or DELETE query associated with <code class="parameter">link_identifier</code>.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.mysql-affected-rows-parameters">
  <h3 class="title">Elenco dei parametri</h3>
  <dl>
   <dt><code class="parameter">
link_identifier</code></dt><dd><p class="para">La connessione MySQL. Se 
l&#039;identificativo di connessione non è specificato, l&#039;ultima connessione aperta da
<span class="function"><a href="function.mysql-connect.php" class="function">mysql_connect()</a></span> viene assunta. Se questa connessione non è trovata, si
cercherà di crearne una come se <span class="function"><a href="function.mysql-connect.php" class="function">mysql_connect()</a></span> fosse stata chiamata
senza argomenti. Se una connessione non è trovata oppure non viene stabilita, un
avviso di livello <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> viene generato.</p></dd>

  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.mysql-affected-rows-returnvalues">
  <h3 class="title">Valori restituiti</h3>
  <p class="simpara">
   Returns the number of affected rows on success, and -1 if the last query
   failed.
  </p>
  <p class="simpara">
   If the last query was a DELETE query with no WHERE clause, all
   of the records will have been deleted from the table but this
   function will return zero with MySQL versions prior to 4.1.2.
  </p>
  <p class="simpara">
   When using UPDATE, MySQL will not update columns where the new value is the
   same as the old value.  This creates the possibility that
   <span class="function"><strong>mysql_affected_rows()</strong></span> may not actually equal the number
   of rows matched, only the number of rows that were literally affected by
   the query.
  </p>
  <p class="simpara">
   The REPLACE statement first deletes the record with the same primary key
   and then inserts the new record. This function returns the number of
   deleted records plus the number of inserted records.
  </p>
  <p class="simpara">
   In the case of &quot;INSERT ... ON DUPLICATE KEY UPDATE&quot; queries, the
   return value will be <code class="literal">1</code> if an insert was performed,
   or <code class="literal">2</code> for an update of an existing row.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.mysql-affected-rows-examples">
  <h3 class="title">Esempi</h3>
  <div class="example" id="example-1">
   <p><strong>Example #1 <span class="function"><strong>mysql_affected_rows()</strong></span> example</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$link </span><span style="color: #007700">= </span><span style="color: #0000BB">mysql_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">, </span><span style="color: #DD0000">'mysql_user'</span><span style="color: #007700">, </span><span style="color: #DD0000">'mysql_password'</span><span style="color: #007700">);<br />if (!</span><span style="color: #0000BB">$link</span><span style="color: #007700">) {<br />    die(</span><span style="color: #DD0000">'Could not connect: ' </span><span style="color: #007700">. </span><span style="color: #0000BB">mysql_error</span><span style="color: #007700">());<br />}<br /></span><span style="color: #0000BB">mysql_select_db</span><span style="color: #007700">(</span><span style="color: #DD0000">'mydb'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* this should return the correct numbers of deleted records */<br /></span><span style="color: #0000BB">mysql_query</span><span style="color: #007700">(</span><span style="color: #DD0000">'DELETE FROM mytable WHERE id &lt; 10'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Records deleted: %d\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">mysql_affected_rows</span><span style="color: #007700">());<br /><br /></span><span style="color: #FF8000">/* with a where clause that is never true, it should return 0 */<br /></span><span style="color: #0000BB">mysql_query</span><span style="color: #007700">(</span><span style="color: #DD0000">'DELETE FROM mytable WHERE 0'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"Records deleted: %d\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">mysql_affected_rows</span><span style="color: #007700">());<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>Il precedente esempio visualizzerà
qualcosa simile a:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Records deleted: 10
Records deleted: 0</pre>
</div>
   </div>
  </div>
  <div class="example" id="example-2">
   <p><strong>Example #2 <span class="function"><strong>mysql_affected_rows()</strong></span> example using transactions</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$link </span><span style="color: #007700">= </span><span style="color: #0000BB">mysql_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">, </span><span style="color: #DD0000">'mysql_user'</span><span style="color: #007700">, </span><span style="color: #DD0000">'mysql_password'</span><span style="color: #007700">);<br />if (!</span><span style="color: #0000BB">$link</span><span style="color: #007700">) {<br />    die(</span><span style="color: #DD0000">'Could not connect: ' </span><span style="color: #007700">. </span><span style="color: #0000BB">mysql_error</span><span style="color: #007700">());<br />}<br /></span><span style="color: #0000BB">mysql_select_db</span><span style="color: #007700">(</span><span style="color: #DD0000">'mydb'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Update records */<br /></span><span style="color: #0000BB">mysql_query</span><span style="color: #007700">(</span><span style="color: #DD0000">"UPDATE mytable SET used=1 WHERE id &lt; 10"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">printf </span><span style="color: #007700">(</span><span style="color: #DD0000">"Updated records: %d\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">mysql_affected_rows</span><span style="color: #007700">());<br /></span><span style="color: #0000BB">mysql_query</span><span style="color: #007700">(</span><span style="color: #DD0000">"COMMIT"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>Il precedente esempio visualizzerà
qualcosa simile a:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Updated Records: 10</pre>
</div>
   </div>
  </div>
 </div>


 <div class="refsect1 notes" id="refsect1-function.mysql-affected-rows-notes">
  <h3 class="title">Note</h3>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <strong>Transactions</strong><br />
   <span class="simpara">
    If you are using transactions, you need to call
    <span class="function"><strong>mysql_affected_rows()</strong></span> after your INSERT, UPDATE, or
    DELETE query, not after the COMMIT.
   </span>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <strong>SELECT Statements</strong><br />
   <span class="simpara">
    To retrieve the number of rows returned by a SELECT, it is possible to
    use <span class="function"><a href="function.mysql-num-rows.php" class="function">mysql_num_rows()</a></span>.
   </span>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <strong>Cascaded Foreign Keys</strong><br />
   <span class="simpara">
     <span class="function"><strong>mysql_affected_rows()</strong></span> does not count rows affected
     implicitly through the use of ON DELETE CASCADE and/or ON UPDATE CASCADE
     in foreign key constraints.
   </span>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.mysql-affected-rows-seealso">
  <h3 class="title">Vedere anche:</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.mysql-num-rows.php" class="function" rel="rdfs-seeAlso">mysql_num_rows()</a> - Get number of rows in result</span></li>
   <li><span class="function"><a href="function.mysql-info.php" class="function" rel="rdfs-seeAlso">mysql_info()</a> - Get information about the most recent query</span></li>
  </ul>
 </div>

</div><?php manual_footer($setup); ?>