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.
sybase_affected_rows
(PHP 4, PHP 5)
sybase_affected_rows — Retourne le nombre de lignes affectées par la dernière requête Sybase
Description
sybase_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE sur le serveur associé à l'identifiant de connexion link_identifier .
Cette commande ne sert à rien sur les requêtes SELECT : uniquement sur des requêtes qui modifient les lignes. Pour connaître le nombre de lignes retournées par un SELECT, utilisez sybase_num_rows().
Liste de paramètres
- link_identifier
-
Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte sera utilisée.
Valeurs de retour
Retourne le nombre de lignes affectées, sous la forme d'un entier.
Exemples
Exemple #1 Requête d'effacement
<?php
/* connexion à la base */
sybase_connect('SYBASE', '', '') or
die("Impossible de se connecter");
sybase_select_db("db");
sybase_query("DELETE FROM sometable WHERE id < 10");
printf("Nombre de lignes effacées : %d\n", sybase_affected_rows());
?>
L'exemple ci-dessus va afficher :
Nombre de lignes effacées : 10
sybase_affected_rows
31-May-2002 06:24
22-Mar-2000 02:25
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
...
