If you get a segfault with sybase-ct, add a en_US entry to your $SYBASE/locales/locales.dat file:
[linux]
locale = en_US, us_english, iso_1
...
(PHP 4, PHP 5)
sybase_affected_rows — Informa o número de linhas afetadas pela última consulta
$link_identifier
] ) : intsybase_affected_rows() retorna o número de linhas afetadas pelo último INSERT, UPDATE ou DELETE no servidor associado com o identificador de recurso especificado.
Este comando não tem efeito para comandos SELECT, somente em comando que modificam registros. Para recuperar o número de linhas retornadas de um SELECT, use sybase_num_rows().
link_identifier
Se o identificador do link não é especificado, o último link aberto é usado.
Retorna o número de linhas afetadas, como um inteiro.
Exemplo #1 Delete-Query
<?php
/* connect to database */
sybase_connect('SYBASE', '', '') or
die("Could not connect");
sybase_select_db("db");
sybase_query("DELETE FROM sometable WHERE id < 10");
printf ("Records deleted: %d\n", sybase_affected_rows());
?>
O exemplo acima irá imprimir:
Records deleted: 10
If you get a segfault with sybase-ct, add a en_US entry to your $SYBASE/locales/locales.dat file:
[linux]
locale = en_US, us_english, iso_1
...
The sybase_affected_rows() function seems to work now with the Sybase DB Library. Not sure when this improvement was made, but I'm currently running PHP 4.1.2 on Solaris.
Affected rows seems to return a -1 if the query syntax was incorrect on the last submitted query.
Affected rows returns 0 if no rows were affected or another error occured, such as a foreign key violation and also returns 0 if the query was successfully, but no records were affected by the query.
If the query was valid and did affect some rows, sybase_affected_rows() seems to be returning the correct number.