<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>basketweaving for the mind : php</title><link>http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx</link><description>Tags: php</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>PHP: Of Eyes, Ears and Clouds</title><link>http://blogs.msdn.com/nickhodge/archive/2009/07/08/php-of-eyes-ears-and-clouds.aspx</link><pubDate>Wed, 08 Jul 2009 04:27:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9823346</guid><dc:creator>nhodge</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/9823346.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=9823346</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=9823346</wfw:comment><description>&lt;p&gt;SOme quick notes on Microsoft and PHP things that are in motion. Things is such a great Anglo-Saxon word.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://phpazure.codeplex.com/"&gt;July CTP of PHP SDK for Windows Azure&lt;/a&gt;. If you are more visual, &lt;a href="http://blogs.msdn.com/bags/archive/2009/07/07/hosting-a-php-application-in-windows-azure.aspx"&gt;Rob Bagby has an excellent post&lt;/a&gt; and more excellent screencast overview:&lt;/p&gt; &lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/V3FJl9dTQz8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/V3FJl9dTQz8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt;Also, pop over to the online webcasts &lt;a href="http://phparch.com/conferences/webcasts"&gt;CodeWorks&lt;/a&gt;, which is hosted and run by &lt;a href="http://phparch.com/"&gt;PHP|Architect&lt;/a&gt;. These are sponsored by Microsoft.&lt;/p&gt;  &lt;p&gt;If you prefer to read magazine style, the &lt;a href="http://phparch.com/magazine/index/97"&gt;May issues of PHP Architect Magazine&lt;/a&gt; is a free download. Compliments of Microsoft.&amp;#160;&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9823346" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category></item><item><title>PHP on Windows</title><link>http://blogs.msdn.com/nickhodge/archive/2008/12/15/php-on-windows.aspx</link><pubDate>Mon, 15 Dec 2008 03:19:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9216471</guid><dc:creator>nhodge</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/9216471.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=9216471</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=9216471</wfw:comment><description>&lt;p&gt;&lt;a title="Sydney Harbour Bridge" href="http://www.flickr.com/photos/37473564@N00/195853679/"&gt;&lt;img border="0" alt="Sydney Harbour Bridge" src="http://static.flickr.com/76/195853679_13e283e58c.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Do you use PHP on Windows?&lt;/p&gt;  &lt;p&gt;Love to hear your stories. Comment here or email me at &lt;a href="mailto:nhodge@microsoft.com"&gt;nhodge@microsoft.com&lt;/a&gt; and I will send you a special postcard from Australia!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9216471" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category></item><item><title>Open Source Developer Conference, Sydney, 2008</title><link>http://blogs.msdn.com/nickhodge/archive/2008/12/15/open-source-developer-conference-sydney-2008.aspx</link><pubDate>Mon, 15 Dec 2008 01:52:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9215942</guid><dc:creator>nhodge</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/9215942.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=9215942</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=9215942</wfw:comment><description>&lt;p&gt;During the 30 minutes of presentation, I demonstrated the following bits and pieces of open source and or free Microsoft bits.&lt;/p&gt;  &lt;h5&gt;Demo set 1: Open source licensing and giving back&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=""&gt;ASP.NET MVC&lt;/a&gt; on &lt;a href=""&gt;Stackoverflow.com:&lt;/a&gt; licensed via &lt;a href="http://opensource.org/node/207"&gt;MS-PL&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://codeplex.com/"&gt;Codeplex.com&lt;/a&gt;; the main, but not only, Microsoft repository of our open source bits and source &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/Oomph"&gt;Oomph: Microformats toolkit&lt;/a&gt; (source on codeplex.com) incorporating:       &lt;ul&gt;       &lt;li&gt;&lt;a href="http://get.live.com/writer/overview"&gt;LiveWriter&lt;/a&gt;; hCard plugin; publish; show IE plugin, same site with &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2240?id=2240"&gt;Firefox Tail&lt;/a&gt; for that other browser. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Demo set 2: PHP, SQLServer 2008 &amp;amp; Frameworks&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/nickhodge/archive/2008/08/19/in-which-i-get-my-own-iis7.aspx"&gt;IIS7/PHP; Modules mapping via FastCGI&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/web/channel/downloads/default.aspx"&gt;Microsoft Web Platform Installer and Web Application Installer&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/SQL2K5PHP"&gt;MSSQLPHPDriver; show PHP + results; codeplex&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Demo set 3: Dynamic Language Runtime, IronPython, IronRuby&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.codeplex.com/IronPython"&gt;IronPython&lt;/a&gt;; ipy hello world winforms and as &lt;a target="_blank" href="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=Dynamic%20Language%20Support&amp;amp;referringTitle=Home"&gt;'code behind' in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blog.jimmy.schementi.com/2008/08/walk-through-silverlight-flickr-client.html"&gt;Photoviewer&lt;/a&gt;; using local Chiron, browser, ruby in browser doing HTML/DOM &lt;/li&gt;    &lt;li&gt;&lt;a target="_blank" href="http://www.codeplex.com/Silverlight"&gt;Silverlight Toolkit&lt;/a&gt;: MS-PL controls and data visualisation tools. MS-PL &lt;/li&gt;    &lt;li&gt;Mono team's &lt;a target="_blank" href="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=Dynamic%20Language%20Support&amp;amp;referringTitle=Home"&gt;Moonlight&lt;/a&gt;. Silverlight for Linux &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9215942" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/opensource/default.aspx">opensource</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/moonlight/default.aspx">moonlight</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/silverlight/default.aspx">silverlight</category></item><item><title>Demos and Links from Edge of the Web, Nov’08 Perth</title><link>http://blogs.msdn.com/nickhodge/archive/2008/11/11/demos-and-links-from-edge-of-the-web-nov-08-perth.aspx</link><pubDate>Tue, 11 Nov 2008 06:08:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9059152</guid><dc:creator>nhodge</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/9059152.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=9059152</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=9059152</wfw:comment><description>&lt;p&gt;During the 50 minutes of presentation (including at least 9 &lt;a href="http://icanhascheezburger.com/"&gt;ICHC&lt;/a&gt; images), I demonstrated the following bits and pieces of open source and or free Microsoft bits.&lt;/p&gt;  &lt;h3&gt;Demo set 1: Web Standards&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.mesh.com/"&gt;Live Mesh Mobile&lt;/a&gt; : take photo to mesh on laptop &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;MacOS X 10.5 client available too [&lt;em&gt;not demo’d&lt;/em&gt;] &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;a href="http://dev.live.com/"&gt;DataModelBrowser to apis.mesh.com&lt;/a&gt;; showing REST/JSON/APP [part of Live Framework SDK]&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/Oomph"&gt;Oomph: Microformats toolkit&lt;/a&gt; (source on codeplex.com) incorporating:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://get.live.com/writer/overview"&gt;LiveWriter&lt;/a&gt;; hCard plugin; publish; show IE plugin, same site with &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2240?id=2240"&gt;Firefox Tail&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;h3&gt;Demo set 2: PHP, SQLServer 2008 &amp;amp; IIS7 &lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/nickhodge/archive/2008/08/19/in-which-i-get-my-own-iis7.aspx"&gt;IIS7/PHP; Modules mapping via FastCGI&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/web/channel/downloads/default.aspx"&gt;Microsoft Web Platform Installer and Web Application Installer&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/SQL2K5PHP"&gt;MSSQLPHPDriver; show PHP + results; codeplex&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Demo set 3: IronPython&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.codeplex.com/IronPython"&gt;IronPython&lt;/a&gt;; ipy hello world winforms &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=Dynamic%20Language%20Support"&gt;using as aspx as &amp;quot;code behind&amp;quot; and ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/a&gt; integration with via .NET compiled .dll&amp;#160; (calling from IronPython)&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Demo set 4: IronRuby&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.ironruby.net/"&gt;IronRuby&lt;/a&gt;; flickr.net example from &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL44.wmv"&gt;John Lam’s PDC2008 session&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blog.jimmy.schementi.com/2008/08/walk-through-silverlight-flickr-client.html"&gt;Photoviewer&lt;/a&gt;; using local Chiron, browser, ruby in browser doing HTML/DOM &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Demo set 5: Silverlight&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Silverlight 2 tools for Visual Studio now support Visual Studio Express &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Silverlight 2 also supporting Eclipse (see, competition is a good thing) &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/Silverlight"&gt;Silverlight Toolkit&lt;/a&gt;, run from chrome-less Google Chrome (contains &lt;a href="http://www.hanselman.com/blog/TheWeeklySourceCode33MicrosoftOpenSourceInsideGoogleChrome.aspx"&gt;Microsoft Windows Template Lib&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9059152" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/sqlserver/default.aspx">sqlserver</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/iis7/default.aspx">iis7</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/codeplex/default.aspx">codeplex</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/opensource/default.aspx">opensource</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/ruby/default.aspx">ruby</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/f_2300_/default.aspx">f#</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/microformats/default.aspx">microformats</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/ironruby/default.aspx">ironruby</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/ironpython/default.aspx">ironpython</category></item><item><title>October 2008 Update: Microsoft SQL Server 2005 Driver for PHP</title><link>http://blogs.msdn.com/nickhodge/archive/2008/10/20/october-2008-update-microsoft-sql-server-2005-driver-for-php.aspx</link><pubDate>Mon, 20 Oct 2008 00:44:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9006670</guid><dc:creator>nhodge</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/9006670.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=9006670</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=9006670</wfw:comment><description>&lt;p&gt;Now available, prebuilt is &lt;a title="available for download" href="http://go.microsoft.com/fwlink/?LinkId=123470"&gt;available for download&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Source is also available from Codeplex: &lt;a title="CodePlex" href="http://www.codeplex.com/SQL2K5PHP"&gt;CodePlex&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9006670" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/sqlserver/default.aspx">sqlserver</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category></item><item><title>Hidden in the Mists of the Forest</title><link>http://blogs.msdn.com/nickhodge/archive/2008/10/17/hidden-in-the-mists-of-the-forest.aspx</link><pubDate>Fri, 17 Oct 2008 03:01:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9002554</guid><dc:creator>nhodge</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/9002554.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=9002554</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=9002554</wfw:comment><description>&lt;p&gt;Hidden in the mists of the autumnal forests (northern hemisphere, southern hemisphere it is springtime!) Microsoft opened a new door to interesting Opensource-web things: &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/web/content.aspx?id=microsoft-introduces-installers-for-open-source-apps" href="http://www.microsoft.com/web/content.aspx?id=microsoft-introduces-installers-for-open-source-apps"&gt;http://www.microsoft.com/web/content.aspx?id=microsoft-introduces-installers-for-open-source-apps&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/web"&gt;http://www.microsoft.com/web&lt;/a&gt; is bookmark worthy.&lt;/p&gt;  &lt;p&gt;The world has dramatically changed, and Microsoft moves along with the times. &lt;/p&gt;  &lt;p&gt;Seasons change. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9002554" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/opensource/default.aspx">opensource</category></item><item><title>SQL Server Driver for PHP: Last Inserted Row ID</title><link>http://blogs.msdn.com/nickhodge/archive/2008/09/23/sql-server-driver-for-php-last-inserted-row-id.aspx</link><pubDate>Mon, 22 Sep 2008 16:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8961181</guid><dc:creator>nhodge</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/8961181.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=8961181</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=8961181</wfw:comment><description>&lt;P&gt;After a mysql_query with an INSERT statement, a quick call to &lt;STRONG&gt;mysql_insert_id&lt;/STRONG&gt; provides the ID of the last inserted row.&lt;/P&gt;&lt;PRE class=csharpcode&gt;$lastRow = mysql_insert_id($link);&lt;/PRE&gt;
&lt;P&gt;How do you accomplish the same with the SQL Server Driver for PHP?&lt;/P&gt;
&lt;P&gt;In this extended example, it’s a simple matter of adding some extra SQL to the INSERT statement, and popping the result from the query.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&amp;lt;?php 

    &lt;SPAN class=kwrd&gt;function&lt;/SPAN&gt; lastInsertId($queryID) {
        sqlsrv_next_result($queryID);
        sqlsrv_fetch($queryID);
        &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; sqlsrv_get_field($queryID, 0);
    } 

    $serverName = &lt;SPAN class=str&gt;'.\SQLEXPRESS'&lt;/SPAN&gt;;
    $connectionInfo = array( &lt;SPAN class=str&gt;"Database"&lt;/SPAN&gt;=&amp;gt;&lt;SPAN class=str&gt;"&lt;EM&gt;database&lt;/EM&gt;"&lt;/SPAN&gt; ); 

    &lt;SPAN class=rem&gt;/* Connect using Windows Authentication. */&lt;/SPAN&gt;
    $conn = sqlsrv_connect( $serverName, $connectionInfo );
    &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt;( $conn === &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt; )
    {
        echo &lt;SPAN class=str&gt;"Unable to connect.&amp;lt;/br&amp;gt;"&lt;/SPAN&gt;;
        die( print_r( sqlsrv_errors(), &lt;SPAN class=kwrd&gt;true&lt;/SPAN&gt;));
    } 

    &lt;SPAN class=rem&gt;/* Define the Transact-SQL query. Use question marks as parameter placeholders. */&lt;/SPAN&gt;
    $insertSQL = &lt;SPAN class=str&gt;"INSERT INTO &lt;EM&gt;table&lt;/EM&gt;
              (&lt;EM&gt;message&lt;/EM&gt;, &lt;EM&gt;fromuser&lt;/EM&gt;) 
              VALUES (? , ?) "&lt;/SPAN&gt;; 

    &lt;SPAN class=rem&gt;/* Initialize $message and $from */&lt;/SPAN&gt;
    $message = &lt;SPAN class=str&gt;"Please call me"&lt;/SPAN&gt;; 
    $fromuser = &lt;SPAN class=str&gt;"Nick Hodge"&lt;/SPAN&gt;; 

    &lt;SPAN class=rem&gt;/* special Transact-SQL addition to the SQL insert statement. It will return the last insert ID */&lt;/SPAN&gt;
    $insertSQL .= &lt;SPAN class=str&gt;"; SELECT SCOPE_IDENTITY() AS IDENTITY_COLUMN_NAME"&lt;/SPAN&gt;; 

    &lt;SPAN class=rem&gt;/* Execute the statement with the specified parameter values. */&lt;/SPAN&gt;
    $stmt1 = sqlsrv_query( $conn, $insertSQL, array($message, $fromuser));
    &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt;( $stmt1 === &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt; )
    {
        echo &lt;SPAN class=str&gt;"Could not retrieve last inserted row ID.&amp;lt;/br&amp;gt;"&lt;/SPAN&gt;;
        die( print_r( sqlsrv_errors(), &lt;SPAN class=kwrd&gt;true&lt;/SPAN&gt;));
    } 

    echo &lt;SPAN class=str&gt;"The last inserted row ID is "&lt;/SPAN&gt;.lastInsertId($stmt1); 

?&amp;gt;&lt;/PRE&gt;
&lt;P&gt;The magic happens in the addition of &lt;STRONG&gt;$insertSQL .= &lt;SPAN class=str&gt;"; SELECT SCOPE_IDENTITY() AS IDENTITY_COLUMN_NAME"&lt;/SPAN&gt;;&lt;/STRONG&gt; appended to the INSERT query.&lt;/P&gt;
&lt;P&gt;Also note the use of a parameterized query. To reduce the risk of SQL injection nastiness, this nifty query does all the heavy lifting.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8961181" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/sqlserver/default.aspx">sqlserver</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category></item><item><title>SQL Server Driver PHP commands compared with MySQL PHP commands</title><link>http://blogs.msdn.com/nickhodge/archive/2008/09/22/sql-server-driver-php-commands-compared-with-mysql-php-commands.aspx</link><pubDate>Mon, 22 Sep 2008 09:20:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8960904</guid><dc:creator>nhodge</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/8960904.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=8960904</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=8960904</wfw:comment><description>&lt;p&gt;Over the years I have used the inbuilt PHP drivers for MySQL. The best mechanism for mapping the two methods is a simple table laying out a comparison between the two systems.&lt;/p&gt;  &lt;p&gt;Note this is not a SQLServer vs. MySQL argument, just for information and reference. &lt;/p&gt;  &lt;p&gt;As the SQLServer drivers change, I will update this page.&lt;/p&gt;  &lt;p&gt;Note:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="665"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="199"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296165(SQL.90).aspx"&gt;sqlsrv_client_info(&amp;#160; )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="464"&gt;DriverDllName: SQLNCLI.DLL DriverODBCVer: 03.52 DriverVer: 09.00.3042 ExtensionVer: 1.0.1015.0&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="667"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="199"&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a target="_blank" href="http://go.microsoft.com/fwlink/?LinkId=123470"&gt;&lt;strong&gt;SQLServer Driver for PHP&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a target="_blank" href="http://www.php.net/manual/en/book.mysql.php"&gt;&lt;strong&gt;MySQL Functions&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Begins a transaction&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296151(SQL.90).aspx"&gt;sqlsrv_begin_transaction( resource $conn )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;START TRANSACTION, BEGIN, COMMIT, ROLLBACK can be executed as statements in mysql_query&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Cancels a statement; discards any pending results for the statement&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296179(SQL.90).aspx"&gt;sqlsrv_cancel( resource $stmt )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;-&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Provides information about the client&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296165(SQL.90).aspx"&gt;sqlsrv_client_info( resource $conn )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;b&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-get-client-info.php"&gt;mysql_get_client_info ( void )&lt;/a&gt;&lt;/b&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Closes a connection. Frees all resources associated with the connection&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296175(SQL.90).aspx"&gt;sqlsrv_close( resource $conn )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a target="_blank" href="http://www.php.net/manual/en/function.mysql-close.php"&gt;mysql_close ([ resource $link_identifier ] )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Commits a transaction&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296194(SQL.90).aspx"&gt;sqlsrv_commit( resource $conn )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;START TRANSACTION, BEGIN, COMMIT, ROLLBACK can be executed as statements in mysql_query&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Changes error handling and logging configurations&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc644931(SQL.90).aspx"&gt;sqlsrv_configure( string $setting, int $value )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;-&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Creates and opens a connection&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296161(SQL.90).aspx"&gt;sqlsrv_connect( string $serverName [, array $connectionInfo )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a target="_blank" href="http://www.php.net/manual/en/function.mysql-connect.php"&gt;mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Returns error and/or warning information about the last operation&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296200(SQL.90).aspx"&gt;sqlsrv_errors( [int $errosAndOrWarnings] )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-errno.php"&gt;mysql_errno ([ resource $link_identifier ] )&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-error.php"&gt;mysql_error ([ resource $link_identifier ] )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Executes a prepared statement with &lt;strong&gt;sqlsrv_prepare&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296162(SQL.90).aspx"&gt;sqlsrv_execute( resource $stmt )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;-&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Makes the next row of data available for reading&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296187(SQL.90).aspx"&gt;sqlsrv_fetch( resource $stmt )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;-&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Retrieves the next row of data as a numerically indexed array, an associative array, or both&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296174(SQL.90).aspx"&gt;sqlsrv_fetch_array( resource $stmt [, int $fetchType] )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-fetch-array.php"&gt;mysql_fetch_array ( resource $result [, int $result_type ] )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Retrieves the next row of data as an object&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc626308(SQL.90).aspx"&gt;sqlsrv_fetch_object( resource $stmt [, string $className] )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-fetch-object.php"&gt;mysql_fetch_object ( resource $result [, string $class_name [, array $params ]] )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Returns field metadata&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296197(SQL.90).aspx"&gt;sqlsrv_field_metadata( resource $stmt )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;See          &lt;br /&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-field-type.php"&gt;mysql_field_type ( resource $result , int $field_offset )&lt;/a&gt; specifically the Example and &lt;a href="http://www.php.net/manual/en/function.mysql-fetch-field.php"&gt;mysql_fetch_field ( resource $result [, int $field_offset ] )&lt;/a&gt;           &lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Closes a statement. Frees all resources associated with the statement&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296164(SQL.90).aspx"&gt;sqlsrv_free_stmt( resource $stmt )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a href="http://www.php.net/function.mysql-free-result.php"&gt;mysql_free_result ( resource $result )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Returns the value of the specified configuration setting&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc644933(SQL.90).aspx"&gt;sqlsrv_get_config( string $setting )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-get-client-info.php"&gt;mysql_get_client_info ( void )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;         &lt;p&gt;Retrieves a field in the current row by index. The PHP return type can be specified&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296207(SQL.90).aspx"&gt;sqlsrv_get_field( resource $stmt, int $fieldIndex [, int $getAsType] )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;similar to &lt;a href="http://www.php.net/manual/en/function.mysql-result.php"&gt;mysql_result ( resource $result , int $row [, mixed $field ] )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Makes the next result available for processing&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296167(SQL.90).aspx"&gt;sqlsrv_next_result( resource $stmt )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;-&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Retrieves the number of fields in an active result set&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc626301(SQL.90).aspx"&gt;sqlsrv_num_fields( resource $stmt )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-num-fields.php"&gt;mysql_num_fields ( resource $result )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Prepares a Transact-SQL query without executing it. Implicitly binds parameters, executed with &lt;strong&gt;sqlsrv_execute&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296181(SQL.90).aspx"&gt;sqlsrv_prepare( resource $conn, string $tsql[ ,array $params[, array $options]] )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;-&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Prepares and executes a Transact-SQL query.&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296184(SQL.90).aspx"&gt;sqlsrv_query( resource $conn, string $tsql[ , array $params[, array $options]] )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-query.php"&gt;mysql_query ( string $query [, resource $link_identifier ] )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Rolls back a transaction.&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296176(SQL.90).aspx"&gt;sqlsrv_rollback( resource $conn )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;START TRANSACTION, BEGIN, COMMIT, ROLLBACK can be executed as statements in &lt;strong&gt;mysql_query&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Returns the number of modified rows.&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296178(SQL.90).aspx"&gt;sqlsrv_rows_affected( resource $stmt )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a target="_blank" href="http://www.php.net/manual/en/function.mysql-affected-rows.php"&gt;mysql_affected_rows ([ resource $link_identifier ] )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;Sends up to eight kilobytes (8 KB) of data to the server with each call to the function.&lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296180(SQL.90).aspx"&gt;sqlsrv_send_stream_data( resource $stmt )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;-&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;         &lt;p&gt;Provides information about the server.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="225"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc296204(SQL.90).aspx"&gt;sqlsrv_server_info( resource $conn )&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;a href="http://www.php.net/manual/en/function.mysql-get-server-info.php"&gt;mysql_get_server_info ([ resource $link_identifier ] )&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8960904" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/sqlserver/default.aspx">sqlserver</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/mysql/default.aspx">mysql</category></item><item><title>Vista as my PHP Developer Workstation</title><link>http://blogs.msdn.com/nickhodge/archive/2008/09/13/vista-as-my-php-developer-workstation.aspx</link><pubDate>Sat, 13 Sep 2008 15:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8949955</guid><dc:creator>nhodge</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/8949955.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=8949955</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=8949955</wfw:comment><description>&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Prior to joining Microsoft, I always setup my Windows laptop as a PHP/Apache development workstation. Having created my &lt;A target=_blank href="http://www.nickhodge.com/blog/archives/2210" mce_href="http://www.nickhodge.com/blog/archives/2210"&gt;own content management system in PHP&lt;/A&gt; (and who hasn’t!) – having a remote development copy is critical.&lt;/P&gt;
&lt;P&gt;Over the last few weeks, I have installed the following onto my Vista Ultimate 64-bit laptop and &lt;A target=_blank href="http://www.nickhodge.com/blog/general-melchett" mce_href="http://www.nickhodge.com/blog/general-melchett"&gt;home workstation&lt;/A&gt;:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;install IIS7 web server, with the CGI support (note: &lt;A target=_blank href="http://learn.iis.net/page.aspx/28/installing-iis-70-on-windows-vista/" mce_href="http://learn.iis.net/page.aspx/28/installing-iis-70-on-windows-vista/"&gt;a version of IIS7 supplied with Vista SP1&lt;/A&gt;) &lt;/LI&gt;
&lt;LI&gt;Install Thread-safe PHP from &lt;A title=http://windows.php.net/downloads.php href="http://windows.php.net/downloads.php" mce_href="http://windows.php.net/downloads.php"&gt;http://windows.php.net/downloads.php&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;Using the IIS Manager, and module remap .php extensions to the &lt;/LI&gt;
&lt;LI&gt;Install php_sqlsrv&lt;STRIKE&gt;_ts&lt;/STRIKE&gt;.dll which is a part of the &lt;A target=_blank href="http://www.codeplex.com/SQL2K5PHP" mce_href="http://www.codeplex.com/SQL2K5PHP"&gt;Microsoft SQL Server 2005 Driver for PHP&lt;/A&gt;, modify the php.ini to launch/activate the extension &lt;STRONG&gt;&lt;EM&gt;[see comments below]&lt;/EM&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;The following change in the php.ini is also important in an IIS installation 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;; Set to 1 if running under IIS.&amp;nbsp; Default is zero. &lt;BR&gt;; fastcgi.impersonate = 1;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/LI&gt;
&lt;LI&gt;Restart the IIS &lt;/LI&gt;
&lt;LI&gt;Reading the &lt;A href="http://forums.iis.net/" mce_href="http://forums.iis.net/"&gt;http://forums.iis.net/&lt;/A&gt; &lt;A target=_blank href="http://forums.iis.net/t/1151378.aspx" mce_href="http://forums.iis.net/t/1151378.aspx"&gt;I also updated FastCGI&lt;/A&gt; (fixes REQUEST_URI) &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Development Environments&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Everyone has their favourite development environment. I do have Notepad++ installed, and often just resort to Notepad. As I am from Microsoft, I have access to Visual Studio. Searching out for a Visual Studio plugin: I am currently trialling &lt;STRONG&gt;vs.php&lt;/STRONG&gt; (Visual Studio PHP; &lt;A title=http://www.jcxsoftware.com/vs.php href="http://www.jcxsoftware.com/vs.php" mce_href="http://www.jcxsoftware.com/vs.php"&gt;http://www.jcxsoftware.com/vs.php&lt;/A&gt;)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8949955" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/iis7/default.aspx">iis7</category></item><item><title>Slides from Sydney PHP User Group</title><link>http://blogs.msdn.com/nickhodge/archive/2008/09/05/slides-from-sydney-php-user-group.aspx</link><pubDate>Fri, 05 Sep 2008 13:03:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8926144</guid><dc:creator>nhodge</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/8926144.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=8926144</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=8926144</wfw:comment><description>&lt;div style="width:425px;text-align:left" id="__ss_583204"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/nickhodge/microsoft-php-and-iis7-presentation?src=embed" title="Microsoft, PHP and IIS7"&gt;Microsoft, PHP and IIS7&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=phpiismicrosoft-1220567832657175-9&amp;amp;stripped_title=microsoft-php-and-iis7-presentation" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=phpiismicrosoft-1220567832657175-9&amp;amp;stripped_title=microsoft-php-and-iis7-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/nickhodge/microsoft-php-and-iis7-presentation?src=embed" title="View Microsoft, PHP and IIS7 on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?src=embed"&gt;Upload&lt;/a&gt; your own.&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8926144" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category></item><item><title>Speaking at Sydney PHP Group</title><link>http://blogs.msdn.com/nickhodge/archive/2008/08/28/speaking-at-sydney-php-group.aspx</link><pubDate>Thu, 28 Aug 2008 04:09:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8902166</guid><dc:creator>nhodge</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/8902166.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=8902166</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=8902166</wfw:comment><description>&lt;p&gt;Pop along. PHP and IIS7, &lt;a href="http://www.sydphp.org/2008/08/25/september-group-meeting" target="_blank"&gt;plus other SQL goodness&lt;/a&gt;. Also find out &lt;em&gt;what exactly &lt;a href="http://en.wikipedia.org/wiki/Demon_core" target="_blank"&gt;is a demon core&lt;/a&gt;?&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8902166" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category></item><item><title>In Which I Get My Own IIS7</title><link>http://blogs.msdn.com/nickhodge/archive/2008/08/19/in-which-i-get-my-own-iis7.aspx</link><pubDate>Tue, 19 Aug 2008 08:28:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8877903</guid><dc:creator>nhodge</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/nickhodge/comments/8877903.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nickhodge/commentrss.aspx?PostID=8877903</wfw:commentRss><wfw:comment>http://blogs.msdn.com/nickhodge/rsscomments.aspx?PostID=8877903</wfw:comment><description>&lt;p&gt;Thanks to our resident &lt;a href="http://blogs.technet.com/jorke/" target="_blank"&gt;Hosting Geek: Jorke&lt;/a&gt;, I have an internet-facing Windows 2008 / IIS7 web site.&lt;/p&gt;  &lt;p&gt;Yes, Jorke is a brave man. &lt;/p&gt;  &lt;p&gt;After logging in via Remote Desktop and changing my password, it is off and away on this funny experience with Windows IIS hosting.&lt;/p&gt;  &lt;p&gt;For the record, historically I have always developed/tested my PHP/MySQL sites on Windows: from 2000, via XP and now on Vista, I would install Apache, PHP and MySQL to provide a mirror to the eventual “web hosted” server in the cloud.&lt;/p&gt;  &lt;p&gt;First step is to install &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/express.aspx" target="_blank"&gt;SQLServer 2008: Express&lt;/a&gt; onto the server. &lt;/p&gt;  &lt;p&gt;Second step, to ensure that FastCGI PHP is running. Thanks &lt;a href="http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis7/" target="_blank"&gt;to the support of FastCGI in IIS7, this took a minute at most&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://learn.iis.net/Content_Cache/246/IIS - Add Module Mapping.png" /&gt; &lt;/p&gt;  &lt;p&gt;Thirdly, as I plan to use the open source &lt;a href="http://www.codeplex.com/SQL2K5PHP" target="_blank"&gt;Microsoft SQL Server 2005 Driver for PHP&lt;/a&gt;, installing the extension: php_sqlsrv.dll and wiring this to launch in php.ini (one line addition)&lt;/p&gt;  &lt;p&gt;&lt;a title="sqlsrv enabled" href="http://www.flickr.com/photos/37473564@N00/2776555007/"&gt;&lt;img alt="sqlsrv enabled" src="http://static.flickr.com/3289/2776555007_6d08328fd7.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After testing with php_info(); , I can see I have a working internet-facing server install.&lt;/p&gt;  &lt;p&gt;Now onward towards php.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8877903" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nickhodge/archive/tags/php/default.aspx">php</category><category domain="http://blogs.msdn.com/nickhodge/archive/tags/iis7/default.aspx">iis7</category></item></channel></rss>