ID: 41393 Updated by: [EMAIL PROTECTED] Reported By: hack988 at gmail dot com Status: Assigned Bug Type: MSSQL related Operating System: windows 2003 PHP Version: 4.4.7 Assigned To: fmk New Comment:
The MSSQL server returns two result sets. The first one for the status of the IF statement and the second for the insert. The current implementation will not allow you to access the second result set (the first one must contain columns for the system to establish multiple result sets). Workaround: Use transactions and two querie. One to check if the row exists and one to insert the row. Previous Comments: ------------------------------------------------------------------------ [2007-05-15 04:13:50] hack988 at gmail dot com Description: ------------ after executed sql query like that IF NOT EXISTS (SELECT * FROM NumberGroup WHERE (GroupName = 'rrgrrg')) INSERT INTO NumberGroup(GroupName, AddTime) VALUES ('rrgrrg', 1); an executed mssql_rows_affected alway return 0 either GroupName= 'rrgrrg' not in database Reproduce code: --------------- i have no idea to deal with this problem by myself Expected result: ---------------- mssql_query("IF NOT EXISTS (SELECT * FROM NumberGroup WHERE (GroupName = 'rrgrrg')) INSERT INTO NumberGroup(GroupName, AddTime) VALUES ('rrgrrg', 1);"); var_dump(mssql_affected_rows($dblink); ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41393&edit=1