--TEST-- fetch columns using fetch mode and different ways of binding columns --DESCRIPTION-- This test should not use temporary table as it might occasionally cause deadlocked transactions. --SKIPIF-- --FILE-- setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); dropTable($conn, $tableName); $conn->exec("CREATE TABLE $tableName ([c1_int] int, [c2_tinyint] tinyint, [c3_smallint] smallint, [c4_bigint] bigint, [c5_bit] bit, [c6_float] float, [c7_real] real, [c8_decimal] decimal(28,4), [c9_numeric] numeric(32,4), [c10_money] money, [c11_smallmoney] smallmoney, [c12_char] char(512), [c13_varchar] varchar(512), [c14_varchar_max] varchar(max), [c15_nchar] nchar(512), [c16_nvarchar] nvarchar(512), [c17_nvarchar_max] nvarchar(max), [c18_text] text, [c19_ntext] ntext, [c20_binary] binary(512), [c21_varbinary] varbinary(512), [c22_varbinary_max] varbinary(max), [c23_image] image, [c24_uniqueidentifier] uniqueidentifier, [c25_datetime] datetime, [c26_smalldatetime] smalldatetime, [c27_timestamp] timestamp, [c28_xml] xml, [c29_time] time, [c30_date] date, [c31_datetime2] datetime2, [c32_datetimeoffset] datetimeoffset)"); $numRows = 0; $query = GetQuery($tableName, ++$numRows); $stmt = $conn->query($query); unset($stmt); $query = GetQuery($tableName, ++$numRows); $stmt = $conn->query($query); unset($stmt); $sql = "SELECT * FROM $tableName ORDER BY c27_timestamp"; $obj1 = new PdoTestClass(); $stmt1 = $conn->query($sql, PDO::FETCH_INTO, $obj1); $obj2 = new PdoTestClass2(1, 2); $stmt2 = $conn->prepare($sql); $result = $stmt2->execute(); $stmt2->setFetchMode(PDO::FETCH_INTO, $obj2); VerifyResults($stmt1, $stmt2, $tableName); dropTable($conn, $tableName); unset($stmt1); unset($stmt2); unset($conn); } function VerifyResults($stmt1, $stmt2, $tableName) { include 'pdo_tools.inc'; $numFields = $stmt1->columnCount(); $i = 0; while ($obj1 = $stmt1->fetch()) { $obj2 = $stmt2->fetch(); echo "Comparing data in row " . ++$i . "\n"; $query = GetQuery($tableName, $i); $dataArray = InsertDataToArray($stmt1, $query, $numFields, $i); CheckObject($stmt1, $obj1, $i, $dataArray); CheckObject($stmt2, $obj2, $i, $dataArray); } } function CheckObject($stmt, $obj, $row, $dataArray) { $j = 0; foreach ($obj as $value) { CompareData($stmt, $row, $j, $value, $dataArray[$j]); $j++; } } function GetQuery($tableName, $index) { $query = ""; switch ($index) { case 1: $query = "INSERT INTO $tableName ([c1_int], [c2_tinyint], [c3_smallint], [c4_bigint], [c5_bit], [c6_float], [c7_real], [c8_decimal], [c9_numeric], [c10_money], [c11_smallmoney], [c12_char], [c13_varchar], [c14_varchar_max], [c15_nchar], [c16_nvarchar], [c17_nvarchar_max], [c18_text], [c19_ntext], [c20_binary], [c21_varbinary], [c22_varbinary_max], [c23_image], [c24_uniqueidentifier], [c25_datetime], [c26_smalldatetime], [c28_xml], [c29_time], [c30_date], [c31_datetime2], [c32_datetimeoffset]) VALUES ((-218991553), (1), (23494), (1864173810), (0), (1), (-3.4E+38), (0.3607), (0.6259), (0.3426), (0.7608), ('bAB:+:|©ßÄ.:B¢UBüÖÄýÃ<ß©ÖaÃbvßZö+/AZ:rzvbåvh_£+Ðr<Äbý.ßãr@výߣöÜ£|B©~ö©Ö/:ðßr©CB©öäßbuöö£rBðö*:/ö>>ý|ÄoUßö¢|>ý£_.O*åÜCÄ.ªha,ãÖßBý>äÐOC_üߪah¢.:©~~@Öý|£ßßb..ÃÜ.bC@|ýCî+v£,BOB|ßrÃ+ßvubC:äAöBÐCZarüaBã<|©uUC¢~.|~ýÃbý>£@Ca_Ð.îÖäÐo££.ªZ¢bU£CýðUå*vCoßý@©bAz£_ª.obüÄ¢öÖhüÄbaÖä_@rÖ£.hß~bУü~'), ('B:ä.ß.å.bbCÜO,UÖ+¢rBßoð>zÖzZzä+Ö<Ð:©oÐ@,ýÜößbüAä**U@b|Or:ýbAb~brÃ+Z:öªª£BãBauC.*Ä<öý¢äÄð_uro£>Z/ÄÐCЩ~ðÖТ.u:oýz~Ð*¢¢bªß©,ðÄ,:ý¢_ÃZ>ýéC_rva:>>+Uå~îo©ß£hZbZ©r,Z¢ßÃÖä>*îbrb/ß~,oå|:>äb<äî©+Ä¢,:zãü,©ßÖ>Ü|Ããöª+ß~ðî/CÖå/_*ßãrh£vÃÜÖªãOÄ+CbÃðOU@v_ãÜÜÐöz|ö_äzýîZ¢ð.hOãÜý,r_Z'), ('UZß_Z++ä_Ö:r©Z*,,uÖbýÜB*:Üä.~r©U>ýZ|@<ªövbä.Ö¢CÄAßobzaü>r>b_@öZ*bOÄ©aÜåî¢ßßðîÃ~ß©h+ÖA~ð>aß+a,b:zß_*|ð:ÄvðU:@rAª@îvä+ª_z>vr©r/å__+>h,+Aîu:Bßßh.ZýrãCCrbÐUuãvÄß>ãbÐîoÐîuoä+£î>Ä_+åð©a~Ö/zvÜåh@ÖO:öUÜbuU|BýÃUÖ~Ou_Ä<.ÜC>vZZ~åüab£BOOöUö:h¢+~Aî@©ÖB_+:b+.z<ý<Ü£,ªBîAh~.uüªU*Ü.|<+ߣãÜ/£¢ªÖÜä>U>Ã>UÜ>Cä+b+å|ÜrÄ~ýÜý¢ÃCߢO:Z:.ß_ÐÐB|ã_£b+@/|>åäå.åoÜB@£ß~ãªAß/üvßoã©©åb+Ä£CU~ZÐz|å|uA:rBZühåba_b:v©ÐauÐaB/,å@|ý.îv>ðäÖU,öÖ+ÃÐOZÃBAßZ¢azzo|h¢b*~ÖýÖüß_ªrÄAZÜvåAZðCÃÜ<ÖÄÜîüoÜzª¢zªo¢Äür@o@ãBv*ub:Cvu>,~BýZýbã+ßîB.üoBv*zĪ@v££//©îУA,hðAb¢/ýhÃßÃðaä,böoßü@ååz<+ä|/ð¢oäÄvAhA£î*~ðÄ~У|bªü|äbåUbЪv~/ÄÜo@bZª*öð_î¢ðüoÐÖÄZ@ãübzßãaü./,*îäo|b©+öÄ£AAü:öZîýä|vîåßBrv:ª,_@h|ÐbߢÃb**ßOðA+*îÄb.~ßbýý*:ä.ð+*C_î.Ðå>ZzÜuöBÄåbäð_åzhöz@Ðb,Bßö££<öîz@©|AhÄ,ãßaßßOA@£+|>ýüZªßýüöð£ÐO/vÄ*UüUª@Ãå@>BÃz>@>+/£oBÖî'), (N'üªrobã|ß*Ã@hrUãÐ.vöß©@ßz_uu,Ä_,Ã+hÜ*ö£uª£ä£Ãå<Ãvb:Ä<ö@o<Üå£ãªObßzãÜb<@ÜÖb+Oßäh:b_ö*vãîÐäüz|ba,ý<Üã,Aâß|Ãö/ª*+ª£:~z£äßü/BðCoöÄÖ©+ÄAAÖ.,îhߪå>h_ªÐð¢:b+¢üåöðÜ@£ªüOÖu¢*~åbO.>buböü,@:ABz~aBbhß<ª.@O¢ÃÐîîUoA|UÃä_Ðßaü,ýr~äuÖ:C~Büý.ãZßÖ|ðÜüý*_ªCrr.å*¢Uaðßb>ß:©|aüî@|Bð£öä'), (N'ZO*åuÐãªî,~+,Üb.|v.>:u.:ÄhbÃÖ<ª+a|ÐOðAÐu+.|CÜa@BÃ@|oh|~ÜboavÃu,ðîÜ<©.Aä¢|rbuäOrZÐhA~CzB|:©ð¢ð>+ðäöÄ||rßߪÃîO,Oã_hÖ:Oaå©ð+£~îOÃobCBýb,äð.ubÐä:OBUã.O|zßåZ:åCÄߣððîåBhé|£ÄAoBÃo:,ö/ýßU*bAvß>A*îoüäÃ'), (N'©~¢@©ß.OO¢z:ÖÜ+£CÃ~ãbäîo_ZßäOUýÜv¢vä,Z~_©äBoO~ªhß*ÖaßzÃßÃ<ý+ý_ýö£_oC@@vßBAOrÖÐýöÄ©bä@ýöüð:oîzu_Cäo_£.<£Zbðîßh>büC:£ªrOb*+@å>b*ªr+_uaÖß~boß:.r/v|r¢ÐÐåbrv~üÃ/Azbh:ÖC>:zÐzä~/,Ö©Cðu*Z/¢åzZ*ö:ßChbäÐzöåöOÄ@~£/Щ¢¢£aöuhßboBroCÐ>¢C*~/h£b,ýãÖhÖ|£+£hã~.~üäu£+zzßUuårü<ߢ*ý~£ü..£Zª<ã_üîîu_+ÄO@vÐbr~_v|~O~AßäaÖ¢~<~*ÖäoAî>îÜUªo@åªözrZªhb>ªýhoOäܪrªÖ~rÜCZb>|*ãß©röüß@©boåuÖåoîÐZAa£,~Üz,orîuBªÐ©ß,ÃbBhüð£u£ðÖO'), ('ýß/Zãz~üöߣh:©Ð|ßaa@@Üh.ÄUÄh©*uaUb©a£Ã+o:ß@Ü'), (N'OäACaÜuÄ+.Ov@ÐÖZö.Üvåub,zã+ÃÜð_Ö>ýÜß>+uUa,z¢<.ä/Ä@~+ßßýöÜ£ßo.|ö/ä/Ü@üöߪO_v@ð:ðîýðýU+oðÃaãaã|bã~ÃbÃ@B@hðüAhÃßbAÄåv£hª*öý+ÄAvÄrðoßöårÐ@bbBÖo|>¢*ö£Üða@:vußZ@+ÖÐßÃßÄC**_CCÜ.bäO.@Ð,b¢övð£+é.:aÄz,ü>ÖÜ>ý¢C£ßUB,.A.ßÜýÃBã.îbÜ©ÃCÃBbBÃîÄ£Ðu,:@Z<©_üv¢ý©uÄ£vCbãÄÐzðýöÄoaÄ@*Üb|ªuª_öu_ß,bCAå,b@@*Ö@_vÖZu~ÃB.©~hªoððäåðãÜ_vÖÄübb_ÄBOOÐa_£Üî:OZbÖr>rã~h©£/ðÐýýa~v_£|Ã~,üåo.ZBü<£><__uÖu>,b<ÜUýA|¢r¢ð|Ð,oß@zÃOä|©övu@:<*@zoO¢C¢ÄåhäÃå+|BÜB+ÐÐ:_z_>ßßýÜ@BhäC¢._Öbrß:_*OÃz.o:/bÖ¢bÜã©hzßÐC¢Ö_AuöÃU*z@ðaýü+ß>/ßzBa.uAã|å¢Ð/b*ð~££b:>rbÜuÄbÜåZzã+îß_ÖhßrBh+ЪBã©b.ÄOC|<*Ouåå£*©zÐb£Ðb_*ý£_©Ð~ª/aÃãr©bðªCÐvZÖUZ<ÜäÜ,>/ªo/ÜüîªîÖÖ~ßåOßCýuß:_aÜuªÖ*båäßröªB©ßîBaarý@Äö,B©£ä_~Aåª,OOu~_aåö,ävBC*Bhß:zAv_£,u,UýZ£îÄ>v¢Ðå:>rB~zBBý|ZÜ,Öª~~C£_ä*hÜî©Ðö~¢ãÐ,U+öCðÃr_vuãöuîåzhðoüOAB*:Oðªh_,Ä~,C.£<£:/a~BZß©Öä£/ÃÃÖruv¢©ÐÜ¢.Öäh+ãÜ>©©'), (0x69C465C11581CB199C423F5ADAB10D08FBC98CA537ADE0F745A40A46E7EBF13678AE4020751008ECA0A59DA462FD031A024E5DAA578E93BBE36D7C70778431B15008E22B71ED93EAC0A005920F3B9548A1EF44998D47DEEA1B843C089397741B74EC545A1AD8A815BB72EAB28BDC95E087D8B022B9638070135CE9526220C976972887D7543078AE083DDDA0A6FBC5F3290CCE9A1A2F6408C3D27BB9BDCEAE4527A23B6354BE8C575F01197B85E0CA1796F62956522F5B68C4), (0xB5BFF13A8F987804C0629E6A7F763A1816E882E3076322C6A557F2F746D39ED5AB0AA2A010DEECED67C6573457BED6DCF44352DBFC2F79519C2A9537A580BEEDC3C8BF75D49A0837FB957B410BEE6FE68016030281C3D97B905004E649B447E6086A708EFF61075A3B1ADF67B33845AEBBAEB78F7DBB6C00EF44E4839622EE474D9539A17DE0E71F0EA8C766E371C7580A552A9AFDB8684DFE709FBA7C84C4182C981A1EFFA431DAC79780D5F3051D7D7D8C7840F75349942CEBA30C402CA28AE3AE394A57A858662450D365389359F853213DEF0C8421D942F6116302D83057244BF49BA56446ACC22AA085B4B9454FE721BD907B3C2938A988F49A96F9C13464E468E3D573B75C62FB87A2ABC7D458B0C17CE01BA0DBE821BBF21C6FAB16C9686B20D0506279736A612E80B4878CE1B39BEAD47DE119C40880C219809BECB7E5BE3A40A604084D470876), (0x5B33992F1168D4C0414C87515CC7D0A060F2CE75779BF64C4B3AAF939C8D746A5F53AD4D28EA6F3318F6A372B3EE4A3D38ADE716A844FAC03C4DE3D7B84024B3D71CF2091A827875839B5D80F784995DEF725BEFA65EC21A58ED10DB06987AD7D2F09A96FC4122B53571920CE779C8B8B386E746E4350D795AD7B02C729C6FEB2185AE07E90260AD4FA6B935CBB533DE2457277FB033F29DE2203C2591F6439801A7EB61CBC1CEB0263AF73E7BD8AEA4A3D1081A75EF3BED921024C9C63B1C5963213324C9D11362897659763CB4210A729781BFED28221260CCB318AC9AA23B8A73706F8495DAAA9F6ABFD2A58F22DC3066DB9712B4CE930E9B04D96E63906F9B871585067738C1143FFB3D03D5C8A0AAD7E745BF0B29D6A4DD60E891013B3BD94F371E7A9DD5B92D1983D2B9919038D2632F967C4BB08F5D3EE0291650301303BF63B39EAA260C012E17A587561C124D27162DD1A4BF8E9EA7C03BBCACA2DDE870CFF92DDC9A273C22944D330B080722CEDCEE3902415FFFD515F7EAEB50558B3ABD178723E5708DEEF0AE0F725B939EB919EED0B3A3E52E6FF958C7A33D51D23FC2F94DF07FFEE96B614B11924F8D7A815830D26285D796D7E817298CA8E9B09FDCD0AF6145AE391A05645157D49B206BDD464A0C7F6FB9EA62760768D55C), (null), (null), (null), ('2079-06-06 23:59:00'), ('10/31/2016 11:46:19 AMThe quick brown fox jumps over the lazy dog0123456789,.;:?[]{}()-+*\%^=~!@#_|/0110/31/2016 11:46:19 AMThe quick brown fox jumps over the lazy dog0123456789,.;:?[]{}()-+*\%^=~!@#_|/01'), (null), ('0001-01-01'), ('0498-06-25 12:16:38.7590909'), ('0534-02-18 04:26:43.4190075+00:00'))"; break; case 2: $query = "INSERT INTO $tableName ([c1_int], [c2_tinyint], [c3_smallint], [c4_bigint], [c5_bit], [c6_float], [c7_real], [c8_decimal], [c9_numeric], [c10_money], [c11_smallmoney], [c12_char], [c13_varchar], [c14_varchar_max], [c15_nchar], [c16_nvarchar], [c17_nvarchar_max], [c18_text], [c19_ntext], [c20_binary], [c21_varbinary], [c22_varbinary_max], [c23_image], [c24_uniqueidentifier], [c25_datetime], [c26_smalldatetime], [c28_xml], [c29_time], [c30_date], [c31_datetime2], [c32_datetimeoffset]) VALUES ((1), (1), (22772), (-9223372036854775808), (0), (1), (-2.3), (0.9047), (0.6343), (-922337203685477.5808), (-214748.3648), (null), ('ä|uÜC£r¢@Ü_@vC~bzCOBÖrö~ÖÜ/Ü~ýÐüðvbvªbÐ.özoÃÃå£rb:>åãvb©ª©A*u/b@A~ªýAz>u.Üo/AvåährÄC@äC£r/©ðb,O@U©£CZ£OÖöv>bC£¢zÜoraÄðaO:üߢ£|oaª£O,¢Ü~>AüOu,b@|ß+oåOoßz£<©*ä~C.B<><_ð+B_îü©îã.hv¢vý,UÜZî_ã+ýÄaßZv@.>>rÐãUßäzªabaBãåo+£*ýÃu@Abýª¢ÃÄß/å@rßb:AÃ|h:ChðZßv/ãBb>ßvÄÃßUuu¢îu©h~¢bb:_Ü,îhÄß*väÃ*,ÄöC.©Ü:z@_î>ßÄOr*ð>/Av>zß©|:î+b_*Öå©üÃUãrCaU>.*aªhððOî+/<ߢau'), (' '), (N'oAß_U©Ã©uîvUã,z_ãÖ:C+/,Ðha+ÜåOäãÖözýrã|ðaAo,C@£ßÖß©ß>¢uÖÐuC©*.ß_@oüÄbzåÜåBAOUBª¢+_ab@A+hÄ|vüÐ媢u£åö_öÜ:öîö,~b@¢£>zß,Ða<ßãý>Aîbý@/öªu£b/Ö~Cªb'), (N'£A£*u~ßU>¢.hÄöv.AäüäoCî.ý/îbߢ/,ãU*:.~ß.ÄO:ýã@+<>oBÐCC/_hU*ßÃÖ:åraz:ªßab/~£@ÃvÐãßzhuaÄüÖ|ÜßOîä©o£Ã|ü:äuÃäÜUOß,_Öª¢ß@äubäOuChÖZh~î>åýÐÖ.üB<,u<ßöOUbªZboZ.£ÄÜrÐbð~¢Ãvz>_aãrã..äß..ZöåÃÃã@Ör>+aýruA|ߪÜ@£ÄÄbÜBuÜå_ãz+îßOUåßo_BaOaãaª,äbr¢å£UO¢ðÖvýzö@Ä¢Z:ãzðߪý_Ã@bðB£,A>¢Ã>U_a¢übî_ßb©ZuÄh|_C.aîC|©~ý££ªv:îAhAîßÃüÖÄ:Ö£äÜÄ,>ã>+uÃ~hý+bü.Uö@¢Üvb©UÐäo£Z:+ðßßZvhÜÜB©*|åð<£ý+:@UAb@¢ÐUC£Oª,Cßb|UÃhCOÐ@Cð_ÜzvrOväöCîÐZÃ_î£hîbü/Bãî.zu*z@@öªBöðã:a*@OÃOßöýªr_ª¢böBÃ<+ßäb@¢ª.ßĪªüßÄîÐ:U/©B:z¢Cßðåå£ýv:>¢hva|bÜAU.aUÐîÐ*>äUßU,|'), (null), ('Ã@îbªz@zbÖ::Ä+åbOî¢åbao|oha£UU~ã£Ä,vCrßÃÐ.ãüåbhîîoO£ß>ÜÃ**å:zäbãOªßýý¢öýBðh©OrÃCýBÐbböAhöÃößz++å*aßvuoðZur|î*B>h©Üä+ªuÃobuÜh>ªZ<ã©h>£ÃabÖö£äo+_U*Bv¢rßÃ>|@ðzüåî+¢bîÄÃAîv>ܪ©ªãýÄÄ_ß.zÃUAü©öhÜÄCåbZuB:ß|zOah/OAîÄ@rª/b@AöãäÐABÜ>ܩТZªîvåü>rz|ãäöÖu¢~BÃß_vZv~B_u/@+Ü<.ªB¢ðÐ<ªZÄ,ýaßvähî©üöbAz£Äß:vßßrb,_oCa©,urU|îv|ZU,vªÄß_z|ßüuöAz@îOö£UCÐhUZÖÐã<.,h>Oî_r@Uäuª*A::råÖ©Ð*ðAh£h*.bß>B,ªb:ã/üéÃÜA@,Bßä|ãbß©bu10/31/2016 11:46:19 AMThe quick brown fox jumps over the lazy dog0123456789,.;:?[]{}()-+*\%^=~!@#_|/0110/31/2016 11:46:19 AMThe quick brown fox jumps over the lazy dog0123456789,.;:?[]{}()-+*\%^=~!@#_|/00'), ('01:21:33.8136175'), ('0413-05-13'), ('2016-10-31 11:46:19.9521697'), ('6050-11-19 01:00:40.4482745+00:00'))"; break; default: break; } return $query; } function Repro() { StartTest("pdo_fetch_fetchinto_query_args"); echo "\nStarting test...\n"; try { FetchInto_Query_Args(); } catch (Exception $e) { echo $e->getMessage(); } echo "\nDone\n"; EndTest("pdo_fetch_fetchinto_query_args"); } Repro(); ?> --EXPECT-- Starting test... Constructor called with 0 arguments Constructor called with 2 arguments Comparing data in row 1 Comparing data in row 2 Done Test "pdo_fetch_fetchinto_query_args" completed successfully.