--TEST-- Test insert various data types and fetch as strings --FILE-- "UTF-8"); $conn = connect($connectionInfo); if (!$conn) { fatalError("Could not connect.\n"); } $tableName = GetTempTableName(); $stmt = sqlsrv_query($conn, "CREATE TABLE $tableName ([c1_int] int, [c2_char] char(512), [c3_varchar] varchar(512), [c4_varchar_max] varchar(max), [c5_nchar] nchar(512), [c6_nvarchar] nvarchar(512), [c7_nvarchar_max] nvarchar(max), [c8_text] text, [c9_ntext] ntext, [c10_binary] binary(512), [c11_varbinary] varbinary(512), [c12_varbinary_max] varbinary(max), [c13_image] image, [c14_timestamp] timestamp)"); sqlsrv_free_stmt($stmt); $numRows = 0; $query = GetQuery($tableName, ++$numRows); $stmt = sqlsrv_query($conn, $query); sqlsrv_free_stmt($stmt); $query = GetQuery($tableName, ++$numRows); $stmt = sqlsrv_query($conn, $query); sqlsrv_free_stmt($stmt); $sql = "SELECT * FROM $tableName ORDER BY c14_timestamp"; $stmt = sqlsrv_query($conn, $sql); $metadata = sqlsrv_field_metadata($stmt); $numFields = count($metadata); $stmt2 = sqlsrv_query($conn, $sql); $i = 0; while ($result = sqlsrv_fetch($stmt)) { echo "Comparing data in row " . ++$i . "\n"; $dataArray = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_NUMERIC); for ($j = 1; $j < $numFields - 1; $j++) { // skip the first and timestamp columns if ($j < 9) { // character fields $value = sqlsrv_get_field($stmt, $j, SQLSRV_PHPTYPE_STRING('UTF-8')); CompareValues($value, $dataArray[$j]); } else { // binary fields $stream = sqlsrv_get_field($stmt, $j, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY)); CompareBinaryData($stream, $dataArray[$j]); } } } $noActualRows = $i; sqlsrv_free_stmt($stmt); sqlsrv_free_stmt($stmt2); sqlsrv_close($conn); } function CompareValues($actual, $expected) { if (is_null($expected)) { return (is_null($actual)); } $len = (empty($expected)) ? 0 : strlen($expected); return (strncasecmp($actual, $expected, $len) === 0); } function GetQuery($tableName, $index) { $query = ""; switch ($index) { case 1: $query = "INSERT INTO $tableName ([c1_int], [c2_char], [c3_varchar], [c4_varchar_max], [c5_nchar], [c6_nvarchar], [c7_nvarchar_max], [c8_text], [c9_ntext], [c10_binary], [c11_varbinary], [c12_varbinary_max], [c13_image]) VALUES ((1), ('üb_rÃß|AZ_Uß.zðýªu+bz©£+_ü_©+o<öoý@îÐbÄÖðîä.ª>ärBãý>brCZ:O©ÄvåÃCbZ¢/ßAU__ªh.ßuÖAB*|_Oýîüär:|,ý>AuÐ*Zä:.b~:ö:bÐ@r:¢¢özhöb.©|ªªÄh|CCobî:O©ö>üÐA<îhÄuBÖ+_ÄBÜUîråß>åZ.zö|/zý:öaãOubðÜ/î+ª.O~.bZ©|ýßhab/¢hö~vðCz/_åð|Oü/:îCvîrÖ|>h£'), (' '), ('ßBß/ßãã¢:>bÜA@hÖ<~|*uåß_/.,BhvÃãUÃbãÖÜO~ªZÃßß/ÄA*,OåîߣöZva.:ÖÜÜhäß@ý|î+~A.<<ðBÄÐv|aÄBaÐbý*bz*Ü>ö¢ãåCÃahb*ÜÐ*¢*ý++.vöÖbAãB:ýuãbUUð_äBr~bU.ð+zZ,:©*Ðöö@_O|ßAauaðUZ_©bÜßö*O:ªOª>ý+ãbîÐU,ýz_:ÐB¢//ýß,äðrý/zvoårÜßO+A©zÜo<å_bhUß+åh¢ªäbOOÄAßðCCåUv|Ðv+büC©ß*>*äbÖ¢ö,aU¢ðÖýo*£_ãb+ývߪ_|aßO@öAÄÄäãöAzoÐåa©¢üvOÐ*~ßÜý@bb>rbö|ßÐÃîbZz>Ã>@î¢BUhü~vßBäöCUÐOßÜ<ãUrobvüÐðüåu©bzä+.ßð@£ßh<üß~£zC@Ðr©vÄ.Bªä,@:/bhî+ãÜZý>u¢ÜðÜuö*@åU>ß©Üö>ÖCb:_*Ö:ÖU>.hb©Oüßbz~£å©_ä£OðU>C.+aoöbÄvAuîBßvB£îOª>ã~£.¢/Ü/îî~hA~<ö>OBð~ÖCbðÖî+ß<+OzoåüåChöu+o~©ÜbußohÄB©ðB<~<å@.¢/|,ßåÃ>b,AoÄr~_.oé|©*£B£uÜ@z£v/ßÖÐaZöO_zBÖ©ðüÐ@ðOzrääöBîvO£îýÖÖÜÐå:ä@Br>Cu~ªýoÃ@v~hzb~üߣCAÜ|£**aåOBv£/bCÄТ,>ðB>C£/¢/Äoî©u.b/ö>îU~Bü~U¢obr+ã*/hOðv/ýîÄ~OAOª/aýÄÜUÐhîãCðåav|u+*~uBuoh@>ý_aðö.£rhb@~~ªZu*ß+|ý£o+ßâ+zÜã|UÖÖ¢îðO_ußC>ÐßÜüöäå+ßü@*+£BvÜvå,Uözßä©z/¢ãzO_ãAð£/<î<ÜZU.UvßîÖüîÖuÜ<öBZ_.Äb@r_bah+.Zðª>h©£rhÜÐCÃbãh_C>o£býý@~Að*£*îB.ÃÄå~Uªö©å_ÄöhýäZhB£bÄÄa*Ã|ßÃ*îb*~o.ÜÖüåîrýr:v|:bbA@uUaÃýÄ_åÃÜvzü<,+ü~b|ouÖåÄ@|bCCÖ¢Z,ßb|>/bubOCðÃUüîO<>ý>+ý@hüoa*bb£öAv~oö£v£ßAã~/@ööÖz¢Bv©©z~,ýzýhvöärör|ZßöÖaO_ßÖ,üub~Ö:_©,ªUª|£ü£©ÖåÄr~Ð,<@©+vÃCUÜO.î>ÖÖ~¢äÐBu,,©aCBÖU,~îö*|ßߢªuöhOüÖýv>¢ü£u>*ý|ß|ÃÃU@ßahZuu£Cv+_©Ðü+ýðãhߪð/Ab,b|:Äðu:+Oã<ÜAä@ÃvÃã¢aOߢaACÃObÄUoäª|ß©¢/vªoo<îªZZî©ÐO:+äÐßÃîCÖOCCr¢OUöå¢b/*/a£oC/ã,Z/übÄ>Ðã'), (null), (N'Z@/bAUZ/A+AA©ÜBöãb©~ÐÐ:ªÄ|,Ã/ö@ãßCÐbß@Ä,£.z<ÃoBBbZÖÄ~ðaÐb£b*î@Ö|ü>bbU<ߪrO©C|að_C©Ö@rbbäª>h>.våObÄ@å¢î¢*ouröu:©oãÄ_<ß>Ð:./a£bzäªrãý:ð>äub.+üåC¢oßý©ÄÖ/,|ýb:U£ß,A©@£Ößbhvßäîäåð,h_b~ý:ðª.zZßäbb::BZЪu.~ÖîU:_ZZß>*>åªZ>ýäå<ÖågetMessage(); } echo "\nDone\n"; endTest("sqlsrv_data_types_fetch_binary_stream"); } Repro(); ?> --EXPECT--  Test begins... Comparing data in row 1 Comparing data in row 2 Done Test "sqlsrv_data_types_fetch_binary_stream" completed successfully.