<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Oracle and PHP &#8211; the deadly mix</title>
	<atom:link href="http://mamchenkov.net/wordpress/2008/10/25/oracle-and-php-the-deadly-mix/feed/" rel="self" type="application/rss+xml" />
	<link>http://mamchenkov.net/wordpress/2008/10/25/oracle-and-php-the-deadly-mix/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=oracle-and-php-the-deadly-mix</link>
	<description>You just stepped in a pile of posts.</description>
	<lastBuildDate>Fri, 12 Mar 2010 07:42:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Chris Jones</title>
		<link>http://mamchenkov.net/wordpress/2008/10/25/oracle-and-php-the-deadly-mix/comment-page-1/#comment-138730</link>
		<dc:creator>Chris Jones</dc:creator>
		<pubDate>Fri, 31 Oct 2008 23:21:57 +0000</pubDate>
		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11395#comment-138730</guid>
		<description>Hi Leonid, I look forward to reading the follow-up.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->Hi Leonid, I look forward to reading the follow-up.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leonid Mamchenkov</title>
		<link>http://mamchenkov.net/wordpress/2008/10/25/oracle-and-php-the-deadly-mix/comment-page-1/#comment-138726</link>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		<pubDate>Fri, 31 Oct 2008 07:01:05 +0000</pubDate>
		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11395#comment-138726</guid>
		<description>Chris,

the information you gave me in the previous comment already helped to fix a few things.  I will post a follow-up once I am satisfied with the setup.

Also, I understand that the post might be somewhat offending for all those who put hard labour in development of Oracle, and in PHP integration.  I didn&#039;t mean it this way.  It was written after a week of frustrating trial and error, so it&#039;s rather emotional.

As I said, I will post a follow-up once the issues are resolved and my head is clear. :)</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->Chris,</p>
<p>the information you gave me in the previous comment already helped to fix a few things.  I will post a follow-up once I am satisfied with the setup.</p>
<p>Also, I understand that the post might be somewhat offending for all those who put hard labour in development of Oracle, and in PHP integration.  I didn&#8217;t mean it this way.  It was written after a week of frustrating trial and error, so it&#8217;s rather emotional.</p>
<p>As I said, I will post a follow-up once the issues are resolved and my head is clear. :)<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Jones</title>
		<link>http://mamchenkov.net/wordpress/2008/10/25/oracle-and-php-the-deadly-mix/comment-page-1/#comment-138725</link>
		<dc:creator>Chris Jones</dc:creator>
		<pubDate>Thu, 30 Oct 2008 23:58:46 +0000</pubDate>
		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11395#comment-138725</guid>
		<description>For numbers, dates and strings you don&#039;t need to specify a type when you bind. Oracle will do a conversion for you.  For other types I take the point. I&#039;m sure the interface could be simplified if redesigned. PHP OCI8 was introduced in, what?, PHP 3?</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->For numbers, dates and strings you don&#8217;t need to specify a type when you bind. Oracle will do a conversion for you.  For other types I take the point. I&#8217;m sure the interface could be simplified if redesigned. PHP OCI8 was introduced in, what?, PHP 3?<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leonid Mamchenkov</title>
		<link>http://mamchenkov.net/wordpress/2008/10/25/oracle-and-php-the-deadly-mix/comment-page-1/#comment-138719</link>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		<pubDate>Wed, 29 Oct 2008 22:26:06 +0000</pubDate>
		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11395#comment-138719</guid>
		<description>Chris,

thanks a lot for stopping by and sharing the information.  Especially for the book link.  After a brief look it seems useful.  I&#039;ll read it through in the next few days.

As for the direct queries - this needs some experimentation and changes on the code that I don&#039;t have a lot of control over, but we&#039;ll try to work something out, even if just to test it.  Thanks for the idea.  I&#039;ll post more on the progress later.

The binding issue that I mentioned wasn&#039;t about the binding per se, but rather about specifying variable types.  It seems excessive, at least in non-typed programming language, such as PHP.

About the Instant Client - I&#039;m sure that I built OCI8 with Instant Client, because otherwise I can&#039;t even get it compiled.  Is there any way to check if all that I need is in or not?  How can I figure out if those Oracle+Zend performance improvements are utilized on my machine?</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->Chris,</p>
<p>thanks a lot for stopping by and sharing the information.  Especially for the book link.  After a brief look it seems useful.  I&#8217;ll read it through in the next few days.</p>
<p>As for the direct queries &#8211; this needs some experimentation and changes on the code that I don&#8217;t have a lot of control over, but we&#8217;ll try to work something out, even if just to test it.  Thanks for the idea.  I&#8217;ll post more on the progress later.</p>
<p>The binding issue that I mentioned wasn&#8217;t about the binding per se, but rather about specifying variable types.  It seems excessive, at least in non-typed programming language, such as PHP.</p>
<p>About the Instant Client &#8211; I&#8217;m sure that I built OCI8 with Instant Client, because otherwise I can&#8217;t even get it compiled.  Is there any way to check if all that I need is in or not?  How can I figure out if those Oracle+Zend performance improvements are utilized on my machine?<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Jones</title>
		<link>http://mamchenkov.net/wordpress/2008/10/25/oracle-and-php-the-deadly-mix/comment-page-1/#comment-138718</link>
		<dc:creator>Chris Jones</dc:creator>
		<pubDate>Wed, 29 Oct 2008 20:43:04 +0000</pubDate>
		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11395#comment-138718</guid>
		<description>You&#039;ll find direct queries are faster than returning REF CURSORs from 
PL/SQL was modelled on ADA.

For your build problem it sounds like you didn&#039;t pass the Instant Client path name to &#039;configure&#039;

Queries in SQL are generally faster than returning REF CURSORs from PL/SQL packages because they can use prefetching which is all handled in the Oracle libraries under PHP OCI8.  The row-by-row you see in OCI8 C code is just fetching from a cache of rows.  See oci8.default_prefetch. If your DB is &quot;remote&quot;, than this will have a big performance impact.

Binding every variable you declare as a bind variable would be logical.

Your problem with &quot;Failed to retreive the error message&quot; generally only happens if you are using an ORACLE_HOME-style install. Are you sure you are using Instant Client?  

Here&#039;s one reference that may help: http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->You&#8217;ll find direct queries are faster than returning REF CURSORs from<br />
PL/SQL was modelled on ADA.</p>
<p>For your build problem it sounds like you didn&#8217;t pass the Instant Client path name to &#8216;configure&#8217;</p>
<p>Queries in SQL are generally faster than returning REF CURSORs from PL/SQL packages because they can use prefetching which is all handled in the Oracle libraries under PHP OCI8.  The row-by-row you see in OCI8 C code is just fetching from a cache of rows.  See oci8.default_prefetch. If your DB is &#8220;remote&#8221;, than this will have a big performance impact.</p>
<p>Binding every variable you declare as a bind variable would be logical.</p>
<p>Your problem with &#8220;Failed to retreive the error message&#8221; generally only happens if you are using an ORACLE_HOME-style install. Are you sure you are using Instant Client?  </p>
<p>Here&#8217;s one reference that may help: <a href="http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf" rel="nofollow"></a><a href='http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf'>http://www.oracle.com/tec...un.....manual.pdf</a><!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leonid Mamchenkov</title>
		<link>http://mamchenkov.net/wordpress/2008/10/25/oracle-and-php-the-deadly-mix/comment-page-1/#comment-138694</link>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		<pubDate>Sat, 25 Oct 2008 20:03:18 +0000</pubDate>
		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11395#comment-138694</guid>
		<description>Patrick,

can you share a bit more info about your setup please?  Which version of PHP, oci8, and Oracle are you using?  How did you get it running (pre-packaged or compiled), etc.

As for our setup, an interesting thing I forgot to mention is that any non-PHP implementation is much faster with all other variables being the same (same Oracle, same hosts, same functionality).  Also, Oracle itself is pretty fast - we tested the same queries locally and from other interfaces (C++).</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->Patrick,</p>
<p>can you share a bit more info about your setup please?  Which version of PHP, oci8, and Oracle are you using?  How did you get it running (pre-packaged or compiled), etc.</p>
<p>As for our setup, an interesting thing I forgot to mention is that any non-PHP implementation is much faster with all other variables being the same (same Oracle, same hosts, same functionality).  Also, Oracle itself is pretty fast &#8211; we tested the same queries locally and from other interfaces (C++).<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick</title>
		<link>http://mamchenkov.net/wordpress/2008/10/25/oracle-and-php-the-deadly-mix/comment-page-1/#comment-138693</link>
		<dc:creator>Patrick</dc:creator>
		<pubDate>Sat, 25 Oct 2008 19:53:57 +0000</pubDate>
		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11395#comment-138693</guid>
		<description>I&#039;ve got to say -- this is not accurate at all.  At my job, I use PHP &amp; Oracle every day, and it&#039;s as quick if not quicker than any other database.

We are using CodeIgniter as the PHP framework, and there are no restrictions on NEEDING to use PL/SQL.  You can run standard SQL against Oracle with no issues, but you have the ability to run PL/SQL as well.

You should look into using CodeIgniter against Oracle, and I think you might have a different opinion.</description>
		<content:encoded><![CDATA[<p><!-- google_ad_section_start -->I&#8217;ve got to say &#8212; this is not accurate at all.  At my job, I use PHP &amp; Oracle every day, and it&#8217;s as quick if not quicker than any other database.</p>
<p>We are using CodeIgniter as the PHP framework, and there are no restrictions on NEEDING to use PL/SQL.  You can run standard SQL against Oracle with no issues, but you have the ability to run PL/SQL as well.</p>
<p>You should look into using CodeIgniter against Oracle, and I think you might have a different opinion.<!-- google_ad_section_end --></p>
]]></content:encoded>
	</item>
</channel>
</rss>
