Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #14015

PDO fetch with SQL server

From Shelly <sheldonlg@thevillages.net>
Newsgroups comp.lang.php, comp.database.ms-sqlserver
Subject PDO fetch with SQL server
Date 2014-06-23 11:02 -0400
Organization A noiseless patient Spider
Message-ID <lo9fin$oo3$1@dont-email.me> (permalink)

Cross-posted to 2 groups.

Show all headers | View raw


I have a strange case.  I have a query in SQL server that has in the 
beginning to determine the action:

                 SELECT
                     CASE
                         WHEN x.NEW_HASH = x.PREVIOUS_HASH THEN 'SAME'
                         WHEN x.NEW_HASH != x.PREVIOUS_HASH AND 
x.PREVIOUS_HASH IS NOT NULL AND x.[KEY] IS NOT NULL THEN 'UPDATE'
                         WHEN x.PREVIOUS_HASH IS NULL AND 
x.count_of_tracking_records > 0 THEN 'UPDATE'
                         WHEN x.PREVIOUS_HASH IS NULL THEN 'INSERT'
                         WHEN x.[KEY] IS NULL THEN 'DELETE'
                         ELSE 'UNKNOWN'
                     END AS ACTION,
                     x.*

so that it will choose the action.  There is a FULL OUTER JOIN at the 
end to the destination table.  Another, later, query, will do a merge 
and perform the action specified in the results of this query.

The PHP function that this uses is a PDO statement with the fetch method 
and the PDO::FETCH_ASSOC as the parameter.

When this query is run against an empty destination table, 1991 records 
are obtained which are subsequently inserted into the destination table 
by the second query.

When this same query is then run against this filled table, with the 
same records, the PDO fetch retrieves zero records. I have put in log 
files into the PHP code and it is clear that the fetch returns zero 
records.

However, when this query is cut and pasted into Sqlserver Management 
Studio and run, it produces 3982 records.  The first 1981 are with 
action DELETE and the rest are with action INSERT.

One additional point that might, or might not, have a bearing on this. 
Some variables have bindings.  For example a :grouping_1 has a string 
value that is the same for the entire query.  When I run it in Sqlserver 
Management Studio I replace those bind variable with their values.

Crossposted to both the php and sqlserver news groups.

-- 
Shelly

Back to comp.lang.php | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

PDO fetch with SQL server Shelly <sheldonlg@thevillages.net> - 2014-06-23 11:02 -0400
  Re: PDO fetch with SQL server Jerry Stuckle <jstucklex@attglobal.net> - 2014-06-23 12:10 -0400
  Re: PDO fetch with SQL server Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-06-24 13:19 +0200
    Re: PDO fetch with SQL server Richard Damon <Richard@Damon-Family.org> - 2014-06-24 08:33 -0400
      Re: PDO fetch with SQL server Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-06-24 15:38 +0200

csiph-web