 | News Feed |
 | Jobs Feed |
Sections
|
| feed this: |  |
Oracle Technology Network: New Features in PHP 5.4
by Chris Cornutt April 12, 2012 @ 09:54:39
On the Oracle Technology Network today there's a new article from Rasmus Lerdorf about the current release of the language (PHP 5.4) and what he sees as the future for PHP.
Almost exactly eight years ago I wrote an article for the Oracle Technology Network called, "Do You PHP?". In that article, I talked about PHP's stubborn, function-over-form approach to solving the "Web problem" and the fight to keep things simple. We were getting close to releasing PHP 5.0 at the time. Now here we are almost a decade later with a shiny new PHP 5.4.0 release, and while much has happened during that time, there are also many things that haven't changed at all.
The first talks about what's the same - the ecosystem surrounding the language and the strength of the LAMP stack that PHP helped to "found". He mentions some of the up-and-comers that are alternatives to this traditional setup and some of the extensions that have been added to improve PHP's functionality (DateTime, PDO, JSON support). He talks about other improvements in the language including:
- Better memory management
- Traits
- Short Array Syntax
- Closure binding
- Built-in webserver
- Native session handler interface
- Removal of register_globals, magic_quotes and safe_mode
He briefly looks ahead at "what's next" for the language and points to the "internals" mailing list and the PHP wiki
voice your opinion now!
features language future oracle
Chris Jones' Blog: Building PHP 5.3 with Oracle HTTP Server 11g
by Chris Cornutt March 24, 2011 @ 13:04:07
The latest post on Chris Jones's blog walks you through the process, step-by-step, of how to build PHP 5.3 with support for the Oracle HTTP server included with the 11g version of the database.
I get the impression that not a lot of people in the PHP community are using Itanium. There are enough warnings during PHP compilation that would make me extremely uncomfortable using it for production applications. A PHP on Itanium installation bug that I logged long ago has not been patched, indicating to me that not many PHP people are investing time in the platform. I can't recommend using Itanium platform for PHP. Anyway, I had a need and here are the steps for posterity.
It's a pretty simple process (if you're used to compiling your own software):
- Checks the OS and compiler to ensure needed tools are installed
- Set up the Oracle environment variables
- Set up the PHP environment
- Copy over the needed header files
- Extract PHP and modify its configure slightly
- make distclean and then configure
voice your opinion now!
oracle server http 11g tutorial install
Chris Jones' Blog: More on PHP and Oracle 11gR2 Improvements to Client Result Caching
by Chris Cornutt March 04, 2011 @ 09:56:33
Chris Jones has posted more information to his Oracle blog about the caching and other improvements that come along with the Oracle 11gR2 release that can be used in PHP applications.
Oracle 11.2 brought several improvements to Client Result Caching. CRC is way for the results of queries to be cached in the database client process for reuse. [...] PHP OCI8 as a "client" of the database can use CRC. The cache is per-process, so plan carefully before caching large data sets. Tables that are candidates for caching are look-up tables where the network transfer cost dominates.
Like many of the other server-side tools Oracle has to offer, it's pretty simple to enable this caching. Before you had to add a custom bit to your query to tell it to enable the caching. Now it's as simple as setting it up on the CREATE or ALTER for the table - nothing extra for the developer to do.
voice your opinion now!
oracle caching client result create alter
Chris Jones' Blog: PHP OCI8 and Oracle 11g DRCP Connection Pooling in Pictures
by Chris Cornutt February 22, 2011 @ 10:44:46
Chris Jones has posted some "pictures" of the performance that an Oracle database sees when it uses the connection pooling versus the normal connect/allocate sort of connection with the Oracle OCI8 driver for PHP. As you can see, the differences in memory consumption are huge.
Here is a screen shot from a PHP OCI8 connection pooling demo that I like to run. It graphically shows how little database host memory is needed when using DRCP connection pooling with Oracle Database 11g. Migrating to DRCP can be as simple as starting the pool and changing the connection string in your PHP application.
He also describes the differences between the pooled and non-pooled connections (to the developer it's as easy as putting ":pooled" in the connect string) in his graphs, and notes that using the pooling doesn't just have to be for large site - smaller sites can benefit too.
voice your opinion now!
oci8 oracle connection pooling performance graph result
Chris Jones' Blog: PECL OCI8 1.4.4 is Available
by Chris Cornutt November 11, 2010 @ 10:12:55
As Chris Jones has mentioned in a new post to his blog, the latest release of the Oracle OCI8 drivers for PHP has been released on PECL (version 1.4.4).
PECL OCI8 1.4.4 has just been released. It fixes a potential memory corruption using oci_set_* functions seen on 64 bit machines. This release can be used to update OCI8 on earlier PHP versions.
He talks about an error he's come across many times - "Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed" - and how it can be fixed with an environment setting. He updated the error message in this new version to be a bit more descriptive and help lead others to the problem more quickly.
voice your opinion now!
pecl oracle oci8 driver release error message
Chris Jones' Blog: Oracle Database and Instant Client 11.2.0.2 are available on Linux
by Chris Cornutt September 16, 2010 @ 09:55:08
On his OTN blog today Chris Jones announces the release of the latest Oracle database and Instant Client libraries (11.2.0.2) for the linux OS:
The Oracle 11.2.0.2 Instant Client libraries are now available on Linux x86 and x86_64 platforms from the Instant Client home page. And they'll soon be uploaded on ULN for customers with Oracle Linux support to install via the update server. If you are one of the (not so?) few users of command line PHP then you might want to grab the new client because it has Oracle bug 9891199 fixed. You'll also need OCI8 1.4.3 from PECL.
The bug this corrected caused a shutdown delay that caused issues with command-line users and their scripts. Unfortunately, the details of the bug are only available to those with an Oracle subscription. This update will not prevent you from connecting to older versions of the Oracle databases.
voice your opinion now!
oracle database instantclient update pecl shutdown bug
Oracle Technology Network: PHP Web Auditing, Authorization and Monitoring with Oracle Database
by Chris Cornutt September 13, 2010 @ 14:10:25
On the Oracle Technology Network today there's a new article from Chris Jones about using the client identifier in the OCI8 PHP-to-Oracle connections to help with auditing, profiling and monitoring your Oracle database usage.
This "client identifier" can be used by Oracle Database to distinguish between individual web application users who all connect to the database using one common set of database credentials. For example, every page in a web site might physically connect to the database as the same database user PHPUSER. If two different people 'Chris' and 'Alison' are using the site, these two user names can be set as their respective client identifiers and be passed into the database.
He shows how to set these client identifiers via the oci_set_client_identifier function (and how you could use it in older versions of the OCI8 driver too). He provides a sample application to help you get a good overall picture complete with SQL to load the database and a basic login page to submit and pull that data back out.
He moves over to the database side where he talks about enabling auditing, pulling out the logged application ID and how to use this identifier to restrict access via a Virtual Private Database on the Oracle side.
voice your opinion now!
authorization monitoring auditing oracle database oci8
Chris Jones' Blog: PHP OCI8 1.4.3 is Available on PECL
by Chris Cornutt August 10, 2010 @ 11:40:38
Chris Jones has a new post to his Oracle blog about the latest release of the OCI8 for PHP drivers to connect Oracle and PHP - version 1.4.3 - now available on PECL.
Why the two releases so close in time? The OCI8 extension is one of the few extensions that has a dual identity, being in both the PHP bundle and in the PECL repository. OCI8 1.4.2 contains the same code as in the recent PHP 5.3.3 release. The PECL bundle was made for anyone who wants a PHP 5.5.3-identical version of OCI8 when installing via PECL.
He describes some of the bugfixes that comes with this release (and what specific circumstances if effects) as well as the requirements you'll need to be able to upgrade to this new version.
voice your opinion now!
pecl oci8 oracle upgrade
Oracle Technology Network: Integrate PHP & Java Applications w/Oracle WebLogic Server & Zend Server
by Chris Cornutt August 04, 2010 @ 08:16:50
As is mentioned in this new post to the Zend Developer Zone today, Oracle has released a new article on their Technology Network about getting PHP and Java applications to work together via the Oracle WebLogic Server and Zend Server.
Whether you're experienced in Java, or PHP, or both, the ability to integrate these two development environments together is a "best of both worlds" scenario for enterprise Web application developers. [...] Zend Server, a high-performance, enterprise-ready PHP stack that runs on both Windows and Linux and that comes with a built-in "Java bridge" to connect PHP with JEE applications and services. This article will tell you more, demonstrating just how simple it is to use Zend Server to connect PHP applications with Java classes deployed on Oracle WebLogic middleware.
They talk about the Java bridge that comes with Zend Server - how to install it and make it active - as well as including some code showing how to access a sample Java class via a new Java object. They also show how to access custom Java classes and how to work with an enterprise JavaBeans server.
voice your opinion now!
java oracle tutorial zendserver javabridge integrate
Chris Jones' Blog: Using PHP OCI8 with 32-bit PHP on Windows 64-bit
by Chris Cornutt June 15, 2010 @ 12:14:31
Chris Jones has a new post to his blog today showing how to use the latest 32-bit OCI8 (Oracle) drivers in a 64-bit Windows environment (like on Windows 7 or similar OSes).
The world migration from 32-bit to 64-bit operating systems is gaining pace. However I've seen a couple of customers having difficulty with the PHP OCI8 extension and Oracle DB on Windows 64-bit platforms. The errors vary depending how PHP is run. They may appear in the Apache or PHP log. [...] Other than IIS permission issues a common cause seems to be trying to use PHP with libraries from an Oracle 64-bit database on the same machine. There is currently no 64-bit version of PHP on http://php.net/ so there is a library mismatch.
The solution is to install the Oracle Instant Client, move a few files around, edit your path and you should be good to go.
voice your opinion now!
oci8 driver oracle windows 32bit 64bit
Gennady Feldman's Blog: Leveraging Oracle connection metadata functionality
by Chris Cornutt May 27, 2010 @ 12:48:11
Gennady Feldman has a new post to his site looking at a feature of the Oracle connection functionality that comes with PHP's integration with the powerful database - metadata functionality.
Now with OEM finding what the query is is really easy (you might need to buy Oracle Performance pack to monitor vitals and performance information). So you know which query caused the spike. Do you know where that query is in your application code? [...] You already have a ton of applications written, having to go through every query to add this meta information is a ton of dev effort. What do you do?
He's found a way to help solve the problem - you can use a few handy functions to let you set some more information about the connection. These settings can give you more information about the client, a client identifier, module information and what action or function is performing the query. This information can then be queried in via the V$session variable on the server side.
voice your opinion now!
oracle connection metadata function
Gennady Feldman's Blog: Oracle query validation
by Chris Cornutt May 26, 2010 @ 11:47:06
Gennady Feldman has put together a new post for his site today looking at a recent situation he had with validating SQL queries for use with an Oracle database.
So we got an interesting use case at work where we have an admin interface to setup filters in our system. Our staff is able to enter expressions in the web interface and we have a way of checking that whatever they enter is valid or not. While trying to optimize the validation code to do stricter checking with lower overhead I ran into a little gotcha. oci_parse() function doesn't actually do validation. This was a huge surprise to me and something I didn't grok.
Frustrated by the fact that the oci_parse function didn't seem to really do much more than bind variables and prepare the SQL for insert, he searched until he came across an interesting optional flag for oci_execute, OCI_DESCRIBE_ONLY. This flag returns some explain information by default and, if the query is invalid, returns an error.
voice your opinion now!
oracle validation sql ociparse ociexecute
Gennady Feldman's Blog: My recent learnings with Oracle Instant Client and OCI8 API
by Chris Cornutt May 14, 2010 @ 09:53:45
Gennady Feldman recently spent some time doing some upgrades on his Oracle servers and, in doing so had a chance to work with the latest release of their Instant Client and how it interacts with the OCI8 extension's API.
I was recently involved in upgrading our Application servers to the latest Oracle Instant Client 11.g (11.2.0.1) including installing the latest PHP OCI8 module (1.4.1). Currently Oracle provides binaries for Linux in RPM and ZIP(?) format. (Side note: It still puzzles me as to why Oracle uses ZIP files for Linux binaries as ZIP is common to Windows and is not always available or generally used on Linux.)
He had everything prepared for the move and thought things would go smoothly during the upgrade but was surprised by a few things - the RPMs that Oracle gives are broken, an issue on the pecl update for the oci8 extension and a problem that came up with dependencies and packages for the Instant Client.
voice your opinion now!
oracle upgrade instant client pecl oci8 api issue
Zend Developer Zone: Build an Enterprise-Grade PHP Stack with Zend Server 5.0 and Oracle 11g
by Chris Cornutt April 22, 2010 @ 11:47:27
On the Zend Developer Zone today there's a new article looking at how you can build an enterprise-grade stack with the combination of Zend Server and Oracle's 11g database.
Setting up an Oracle/PHP/Apache/Linux (OPAL) development environment isn't the easiest of tasks, especially in corporate IT environments which are used to point-and-click simplicity. [...] One of the easiest ways to quickly configure a PHP environment in this environment is Zend Server, a PHP stack that runs on both Windows and Linux and that can be used to build Oracle-based applications out of the box.
The article introduces Zend Server and the functionality it provides (like a web-based management console, built-in optimization and application troubleshooting) as well as how to get it installed and working on your system. With everything all set up and ready, they show you how to configure the Oracle support for it including the use of connection pooling page caching.
voice your opinion now!
zendserver oracle database tutorial install enterprise
Chris Jones' Blog: Reducing Oracle LOB Memory Use in PHP, or Paul's Lesson Applied to Oracle
by Chris Cornutt March 22, 2010 @ 13:49:51
Following along the same theme of Paul Reinheimer's suggestion of using unset to conserve memory usage, Chris Jones has applied a similar pattern to the world of Oracle+PHP.
In Oracle you might come across this situation when dealing with LOBS. Here's an example that selects an entire LOB into PHP's memory. I see this being done all the time, not that that is an excuse to code in this style. The alternative is to remove OCI_RETURN_LOBS to return a LOB locator which can be accessed chunkwise with LOB->read().
He includes an example of pulling out some large data from a table's CLOB fields showing some stats on the memory usage, both with and without an unset to handle the growing fetched data. The end result was a much lower memory usage overall (peak) and a mention of two other things that could help with the Oracle side of things - LOB->free() and the latest OCI8 extension that frees up LOB resources more efficiently.
voice your opinion now!
memory usage optimize oracle lob benchmark
Chris Jones' Blog: Tracing PHP Oracle Applications, part 1
by Chris Cornutt January 20, 2010 @ 12:50:45
Chris Jones (of Oracle) has a new post to his OTN blog with a look at tracing in Oracle+PHP applications via some new methods added to the OCI8 extension.
No matter how it was installed, the PHP OCI8 extension provides a procedural API with familiar calls allowing efficient SQL and PL/SQL execution. The extension also supports some advanced Oracle features such as connection pooling. Recently some new OCI8 functions were checked into the PHP source code.
The new functions - oci_set_module_name, oci_set_action and oci_set_client_info - can be used on any existing (or new) Oracle connection to provide a bit more information about what's going on inside. You can get access to this information via the data dictionary views or through the SYS_CONTEXT() function in your SQL statements.
voice your opinion now!
trace oracle oci8
Oracle Technology Network: Using PHP with Oracle HTTP Server 11g
by Chris Cornutt September 15, 2009 @ 08:24:40
Chris Jones has pointed out a new article on the Oracle Technology Network about using PHP on the Oracle HTTP Server for 11g.
Oracle HTTP Server is the web server component in Oracle Fusion Middleware. Based on the Apache infrastructure, Oracle HTTP Server allows developers to program their site in a variety of languages and technologies. [...] Although PHP interpreter, language and server side module (mod_php) do not ship with the Oracle HTTP Server 11g release, Oracle will assists customers in configuration and inclusion of mod_php into Oracle HTTP Server. Note that Oracle does not support the PHP interpreter and language but it supports Oracle HTTP Server 11g release with mod_php included.
The tutorial steps you through the installation of a PHP component on the Oracle HTTP server to get the latest version of the interpreter up and running (PHP 5.3 as of the time of this post). The main part of the install is getting the mod_php extension for the server installed and working with the needed Oracle (OCI8) support. You'll need to be able to configure and make/make install to get it all working so be sure either you have the rights (or a handy admin is nearby).
voice your opinion now!
oracle http server 11g fusion
Chris Jones' Blog: Upgrading PHP Web Applications with Minimum Downtime using Oracle Editioning
by Chris Cornutt September 02, 2009 @ 12:03:47
Chris Jones has posted a guide to upgrading you PHP apps with as little downtime as possible via the new Editioning feature the 11gR2 version of the database.
The Editioning feature of Oracle Database 11gR2 is ideal for web sites that aim for no downtime when releasing application enhancements. Editioning allows certain database objects to have multiple versions all available at the same time. Applications can decide at runtime which version of the objects should be used.
He gives an example of a simple PHP application - an hours tracking app. He creates a stored function that calculates the number of days of vacation an employee can have and shows how to create a new "edition" of it with updated calculations. Your script then runs an alter on the session to point the edition to this new version.
voice your opinion now!
oracle editioning version object
Chris Jones' Blog: Inserting and Updating Oracle XMLType columns in PHP
by Chris Cornutt July 13, 2009 @ 08:14:21
All of you Oracle users out there might want to check out this recent post from Chris Jones, especially if you've been using the XMLType columns in your tables.
Today a reader mailed me about manipulating XMLType columns when the data is longer than the 4K limit that character-type handling imposes. My free book (see sidebar) has examples of how to do this using CLOB handling in PHP. I noticed that my xmlinsert.php example in the book does a SELECT and UPDATE, but never actually does an INSERT.
To correct the problem of the missing example he includes example code to connect to the database, push the XML into a bind variable and select the row back out to ensure everything's still structured correctly. You need to set up a new descriptor for the insert to work (CLOB).
voice your opinion now!
clob column xmltype xml oracle insert
Oracle Technology Network: High Performance and Availability with Oracle RAC and PHP
by Chris Cornutt July 03, 2009 @ 14:12:07
John Lim has written up an article for the Oracle Technology Network about creating high performance systems with Oracle's Real Application Clusters (RAC) and PHP.
Running a software application that is able to work reliably through hardware and software failures is incredibly hard. [...] In this article, I will cover the network, architecture and design of our RAC application. Then I will discuss the real-world experiences and problems we experienced.
He details their RAC setup - load balancers, application servers and their RAC servers - before working through the different technologies and how they're all installed and configured to work together most efficiently.
voice your opinion now!
tutorial performance high install rac oracle
Juozas Kaziukenas' Blog: How to use external libraries in PHP?
by Chris Cornutt May 23, 2009 @ 20:26:09
As a part of his work for the WinPHP Challenge Juozas Kaziukenas looks at some of the external library types that you can use with your (Windows) PHP applications.
External libraries are useful for performance demanding tasks where PHP is simply too slow. Also PHP can work as front-end system for various back-end systems (where server doesn't provide any PHP supported communication types). I have written some posts about using .Net libraries in PHP so far, but there are some other choices available too.
He looks at the three types of library choices - PHP extensions, exec call. For what he wants to do, though, the COM objects are the best fit for the job.
voice your opinion now!
external extension pecl com
Chris Jones' Blog: Reducing diskspace of your Oracle Instant Client install
by Chris Cornutt April 09, 2009 @ 10:29:16
Chris Jones has a recommendation for those compiling Oracle support into PHP - there's a simple way to reduce the amount of disk space that your Instant Client install uses - a "only what's needed" setup.
Most PHP OCI8 users link PHP with the Oracle Instant Client (IC) libraries that handle the underlying "client" (i.e PHP OCI8 extension) communication with the database. IC is relatively small for the features it gives, and is very easy to install. A ZIP or RPM download unpacks a few libraries. [...] Although IC isn't particularly big - and it's getting relatively smaller all the time - there are two ways to reduce its size.
His two recommendations are to use the lite client version instead of the full-blown one (only has common character sets) or you can just remove the JDBC/ODBC/OCCI libraries from the full install. He lists out the files that are actually needed by the OCI8 extension to compile correctly.
voice your opinion now!
reduce disk space oracle install instant client oci8 compile
Chris Jones' Blog: PHP OCI8 Signal Handling and --enable-sigchild
by Chris Cornutt March 25, 2009 @ 10:22:51
Chris Jones has changed his stance on something he's been recommending PHP users compiling the OCI8 libraries into their installation - the use of enable-sigchild.
I am no longer blindly recommending using --enable-sigchild when configuring PHP with the OCI8 extension. I used to do this as a catch-all. It might have saved some users grief, and did little harm. With changes in recent versions of Oracle and my gut feel about common usage, it will be less confusing not to mention it as a general suggestion.
The point of using the compile flag was to help with the opening/closing of connections to Oracle server processes, but there's a better way he recommends now - using a "BEQUEATH_DETACH" option of "YES" in the sqlnet.ora/Apache config. If that doesn't work, then look into recompiling with the enable-sigchild option.
voice your opinion now!
oic8 oracle compile signal handle bequeathdetach recommendation
Chris Jones' Blog: The PHP "./configure --with-oci8" Option in Detail
by Chris Cornutt March 13, 2009 @ 07:58:07
Just for those PHP & Oracle users out there Chris Jones has posted a new entry to his Oracle blog detailing the different ways you can compile with oci8 support.
PHP OCI8 can be built using libraries from a full Oracle Database (or Database "Client") install, created from running the GUI installer. This is often referred to as an "ORACLE_HOME" install, since an environment variable of that name is set to the installed Oracle software directory. [...] Another dimension to the install is that PHP extensions can be statically compiled into the PHP executable(s), or built as shared binaries. If OCI8 is built as a shared library it is loaded into PHP as a result of setting the php.ini option "extension=oci8.so".
There's eight different methods he mentions including building it as a shared module, using the normal Oracle libraries to build and using the Instant Client libraries to run the build.
voice your opinion now!
configure oci8 oracle detail extension shared static
An Phillips' Blog: COM/.NET Interop in Zero PHP
by Chris Cornutt January 29, 2009 @ 15:03:25
Ant Phillips looks a bit at some interoperability between the PHP and Project Zero when to comes to using the COM/.NET extension.
Zero doesn't currently support the COM/.NET extension in PHP. No matter though, there is a handy open source project called JACOB that bridges between Java and COM/.NET. In fact, there is an easier way to do this using a Groovy library called Scriptom. This is really just a friendly wrapper around JACOB to provide a better syntax for calling methods and accessing properties.
He also includes a quick introduction and howto on getting the functionality up and working in a Windows environment - download, add the JAR to your path, edit your php.ini and copy and paste some example code in to see it in action.
voice your opinion now!
com net interoperability zero extension jacob scriptom
Oracle Technology Network: Installing PHP 5.2 for Oracle on Mac OS X 10.5 (Leopard)
by Chris Cornutt January 16, 2009 @ 11:13:02
Tony Bibbs has posted a new tutorial to the Oracle Technology Network website for all of the Oracle & Mac users out there - Installing PHP 5.2 for Oracle on Mac OS X 10.5 (Leopard).
If you've ever attended a PHP conference, you might have thought that Apple was a sponsor based on all the Mac laptops you saw. Many of the PHP developers toting Macs are running Linux as a virtual machine but more and more PHP developers work natively on the Mac. Recognizing this fact, Oracle has made it downright easy to develop PHP/Oracle applications on the Mac. In this guide I'll show just how easy it is to get your Mac setup to build Oracle-based PHP applications.
His method requires that you have access to a server already running Oracle (even the Express Edition will do), XCode and either Fink or MacPorts (optional). His setup is to use the Oracle installation inside of a virtual machine to get the needed libraries from to build PHP correctly. He even includes some screenshots of the Parallels installation of Kubuntu and some test code to ensure things are working as they should.
voice your opinion now!
oracle mac osx install parallels virtualmachine kubuntu tutorial
Chris Jones' Blog: Available Now! Underground PHP & Oracle Manual, December 2008 Edition
by Chris Cornutt December 09, 2008 @ 11:18:58
Chris Jones has announced the release of the latest version of the Undergroupnd PHP & Oracle Manual.
A hot-off-the-press, free, 290 page, updated version of the Underground PHP & Oracle Manual is available for download from http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf. [...] The previous edition was released way back in May 2007. Since then, Oracle Database 11g and the OCI8 1.3 extension have been released, there have been various changes in PHP community, and I've simply just gathered more notes, examples and have more information to share.
The manual has doubled in size and includes tons of new content reflecting the updates since the previous release. Chris thanks those who helped in creating the content, helped get it out to the community and his co-author Alison Holloway.
voice your opinion now!
underground oracle manual december edition update
Chris Jones' Blog: PHP Brasil '08 - Trip Report
by Chris Cornutt December 08, 2008 @ 09:32:31
Chris Jones (of Oracle) has posted his trip report from this year's PHP Brasil conference he attended:
Last week's PHP Brasil '08 conference was held at the "UNIFIEO" University in Osasco, a region of Sao Paulo. [...] The conference was organized under the leadership of Er Galvao Abbott with community input, and in conjunction with a logistics team from "Tempo Real Eventos". The conference was very interesting and successful.
He mentions the training sessions, talks and the exhibition hall that was "arranged around a basket ball court with a life-size PHP ElePHPant dominating one end". Lots of Oracle elePHPants were given away and the social events were enjoyed, accomidations were nice and plenty of networking was going on throughout the days.
voice your opinion now!
phpbrasil08 brasil conference oracle recap report
Chris Jones' Blog: Which OCI8 DLL to use in PHP 5.3
by Chris Cornutt December 05, 2008 @ 07:58:54
With the release of another DLL driver for PHP on Windows to access Oracle databases, Chris Jones wanted to alleviate any confusion there might be between the two in a new blog post.
As I foreshadowed in a now distant post, Pierre has installed Oracle 11g Instant Client on the PHP Windows build box and updated the OCI8 build scripts for PHP 5.3 (and PHP 6). PHP 5.3 now has two mutually exclusive versions of the OCI8 extension DLL [...] The two DLLs have the same user script API that do the same thing. You only need to (and only can) enable one at any one time. Choose the one that matches your Oracle client libraries.
The two DLLs - php_oci8.dll and php_oci8_11h.dll - have pretty self-explanitory names, but it could be confusing as to whether you need both or not if you go the 11g route.
voice your opinion now!
oracle dll driver windows 11g oci8 extension php5 php6
Chris Jones: Converting REF CURSOR to PIPE for Performance in PHP OCI8 and PDO_OCI
by Chris Cornutt November 04, 2008 @ 08:48:36
In this new post to his blog Chris Jones looks at an option to increase the performance of your PHP/Oracle application even more - converting a REF CURSOR into a piped data set via the PDO_OCI extension.
REF CURSORs are common in Oracle's stored procedural language PL/SQL. They let you pass around a pointer to a set of query results. However in PHP, PDO_OCI doesn't yet allow fetching from them. [...] One workaround, when you can't rewrite the PL/SQL code to do a normal query, is to write a wrapper function that pipes the output.
He includes an example, creating an example myproc() that contains the query to select the last names of all employees in the table. This procedure is put inside of a package so it can be called directly in the SQL statement and the ref cursor can be automatically piped to output.
voice your opinion now!
oracle oci8 extension pdooci performance refcursor pipe procedure package
Singapore PHP User Group: Blair Layton of Oracle Presents on 11g (video)
by Chris Cornutt October 30, 2008 @ 09:32:46
Chris Jones has pointed out a video of a recent presentation at the Singapore PHP User Group Meeting done by Blair Layton (of Oracle Asia Pacific) on the OCI8 extension and using it to connect PHP.
While most PHP developers start off on the LAMP (Linux, Apache, MySQL, PHP) stack there maybe a need to investigate OPAL (Oracle, PHP, Apache, Linux). This talk will discuss what Oracle offers PHP developers including operating system, database, middleware and tools support. You will find out how to take advantage of specific features in Oracle Database 11g that assist PHP developers such as Database Resident Connection Pooling with code samples and demos. An example architecture from a USA web company of a highly scalable PHP application that uses Oracle database will also be discussed.
His slides are also available for download - Set 1, Set 2 and you can watch the full video here.
voice your opinion now!
blairlayton oracle presentation video slide download 11g
EasyTech Blog: Executing PL/SQL code in Zend Framework
by Chris Cornutt October 29, 2008 @ 11:15:17
On the EasyTech blog, there's a recent post for Zend Framework developers out there working with the Oracle database showing how to execute PL/SQL code from your Zend_Db queries.
Calling PL/SQL code from PHP can be tricky sometimes, specially when the PL/SQL procedure has input and output parameters. In this posting I will show you how to call a procedure from the PHP using Zend Framework. I will assume you have some experience using Zend Framework, specially the Database module (Zend_db).
He walks through the creation of a simple PL/SQL stored procedure and how to prepare your query to get results out of it (Zend_Db_Statement_Oracle and an execute call). There's a few stipulations you'll need to follow - named parameters, reserving space for the output and using references for output variables.
voice your opinion now!
plsql oracle tutorial zendframework stored procedure
Chris Jones' Blog: Oracle 11g Result Caching and PHP OCI8
by Chris Cornutt October 29, 2008 @ 07:52:33
Chris Jones has written up another post about a feature in some of the latest OCI8 libraries for PHP - result caching.
Oracle Database 11g introduced "server-side"and "client-side" result caches. The database cache is enabled with the RESULT_CACHE_MODE database parameter, which has several modes. With the default mode, queries for which you want results to be cached need a hint added - No PHP changes are required.
This caching is perfect for results from smaller lookup tables and can drop CPU usage by quite a bit. Oracle automatically takes care of validating the cache entries when something changes the stored results so your query is always fetching the latest (without having to worry about a timestamp on the cache or anything like that). He gives a few examples of how it would work, comparing the queries both with and without the caching.
voice your opinion now!
oracle oci8 driver cache result update tutorial 11g
PHPBuilder.com: Using the ADOdb library with Oracle and PHP
by Chris Cornutt October 24, 2008 @ 09:35:14
On the PHPBuilder.com site today there's a new tutorial continuing in their Oracle theme about using the ADOdb libraries to access the database from your application.
Last week we discussed the use of the OCI8 extension and connection methods for using ADOdb to connect to an Oracle database. This week we'll delve further into the ADOdb library and will disect some example code to get you up to speed!
He gives an overview of some of the functions needed to make the connection and fetch results from a simple query. Some sample code and explanation is also included.
voice your opinion now!
adodb library database oracle tutorial example
PHPBuilder.com: Oracle with PHP a Developer's View
by Chris Cornutt October 20, 2008 @ 09:30:03
PHPBuilder.com has a new basic tutorial introducing you to the world of the powerful combination of Oracle and PHP:
This article is for the developer who wants to use the PHP scripting language with an Oracle database to develop their application. PHP is one of the most commonly used scripting languages, as it is open source and has procedural as well as object-oriented capabilities. Oracle is a popular RDBMS and that's the reason this combination is very useful for web-based application development.
The article talks about the OCI8 extension and gives a sample of its use to connect to a remote machine (using a full TNSNAMES-formatted string for the host). The code is explained a bit from the connect down to the oci_close.
voice your opinion now!
oracle developer tutorial introduction oci8 example
Christopher Jones' Blog: Free Experience Oracle, PHP & Ruby/Rails at Oracle HQ
by Chris Cornutt August 15, 2008 @ 10:24:51
Christopher Jones points out a free event that Oracle is having at its Headquarters (in Redwood Shores, CA) - "Experience Oracle, PHP & Ruby/Rails".
Oracle is running a free workshop at its Headquarters on August 25th. This is a call for developers interested in developing applications in PHP, Ruby/Rails, Java, .Net or even wanting to use Oracle's free SQL Developer tool or learn web development with Oracle's APEX product.
They'll be providing lunch and the information, you just show up and soak it all in. You can find more information about the event here (and register to reserve your spot).
voice your opinion now!
event oracle rubyonrails headquarters hq register
Oracle Technology Network: Oracle Symfony in PHP Minor
by Chris Cornutt July 10, 2008 @ 18:02:37
The Oracle Technology Network has a new article posted looking at a basic application that combines the power of an Oracle database with the flexibility of the Symfony framework.
Where should someone who wants to learn Symfony begin? Project Symfony has a very informative and well-kept Web site, with extensive documentation. As it turns out, there is a book about Symfony and there are also numerous tutorials-unfortunately all of them created using a MySQL database. That is, in essence, why I decided to write this article about Symfony and Oracle. It's not a full-blown tutorial, but I hope it will be helpful to those who want to use Symfony with Oracle.
The sample application uses the latest version of Symfony, an Apache web server and the Zend Core for Oracle to install and configure the needed setup. The bulk of the tutorial is taken up with examples of how to tell the ORM layer of Symfony about your database tables and how to build the default classes from them.
voice your opinion now!
oracle symfony tutorial propel orm database layer
Christopher Jones' Blog: PHP OCI8 1.3.3 has gone "Production"
by Chris Cornutt June 24, 2008 @ 07:56:22
Christopher Jones has noted that the latest version of the OCI8 drivers for PHP (in the PECL extension) have been pushed to the current stable package.
HP's OCI8 1.3.3 has support for Oracle's DRCP connection pooling and Fast Application Notification technologies giving it improved scalability and high availability. Overall, the re-architecture of the connection code is more stable. It fixes some obscure edge case issues and lets it handle re-started DB's better. Basic functionality is unchanged.
You can find out more about the package and download this latest edition from its PECL page or check out the whitepaper they recent;y wrote up about PHP and Oracle scalability.
voice your opinion now!
oci8 driver oracle pecl release stable production version
Community News: Zend Readying for a Buyout?
by Chris Cornutt May 19, 2008 @ 20:08:13
According to some details over on TechCrunch there's a few rumors being started that Zend ("the PHP company") is looking to sell.
Israeli startup Zend Technologies has fired 25 percent of its R&D team (at least ten people), as well as others across the company, in an attempt to become cash flow positive, says a source close to the company.
The official Zend word is that yes, there have been layoffs but no, they cannot comment on the reasoning behind them. Several big names are being thrown around for possible buyers - Microsoft, IBM and Oracle - who have all shown interest in the past.
voice your opinion now!
techcrunch buyout zend company microsoft ibm oracle
Harun Yayli's Blog: oci_bind_by_name maxlength is not so optional
by Chris Cornutt May 09, 2008 @ 13:45:44
Harun Yayli came across a slight problem in his development using the oci_bind_by_name function for one of his queries:
If you think that the maxlength parameter in the documentation of oci_bind_by_name is optional, see this example and think again.
His sample code gave him a "can bind a LONG value only for insert into a LONG column..." error from his Oracle database. His fix was to add that length parameter (his max column length) and all was well. One of his comments (from cj) helps to explain things a bit more:
It makes senses that a length would be required because when the oci_bind_by_name() call is made, there is no data in $$key (a.k.a. $a, $b or $c). Without a length passed, PHP tells the DB to expect a single byte string.
voice your opinion now!
ocibindbyname maxlength optional error oracle
Maggie Nelson's Blog: NTILE() - easy way to generate tag clouds
by Chris Cornutt April 29, 2008 @ 13:44:01
For the Oracle users out there looking for an easy way to pull those tags together and make a handy little cloud out of them, Maggie Nelson has posted about a simple Oracle function that can help - NTILE.
For example, check out the documentation for the NTILE Function. Yeah, sounds kind of boring. What good could it be in the wonderful world of web development? After all, who manages employee or sales tables anymore... Answer: generating tag clouds.
Her SQL statement categorizes the tags for you automatically, dropping them in to "buckets" of font sizes. This makes it simple to loop through them (like with a foreach) and output your tags with a little help from some CSS. You can even specify how many buckets you want it to fill (how many different tag values to get and compare).
voice your opinion now!
ntile tag cloud tutorial oracle sql order bucket
Matthew Turland's Blog: PHP, MySQL, and Oracle An Odd Triangle
by Chris Cornutt April 10, 2008 @ 13:04:30
A little while back Matthew Turland posted an interesting item to has blog talking about what he calls the "odd triangle" of PHP, MySQL and Oracle.
In [an article from Maggie Nelson in a blog entry], she remarks on the article being MySQL-oriented and how limited MySQL explain plan support is compared to Oracle. I've had some thoughts in my head for a while that are related to these points, so I finally decided to, knock on wood, put pen to paper.
Matthew talks about things he agrees with (Oracle over MySQL when it comes to hierarchal data and set operators) and some of the things that can make Oracle, with all its power, fall by the wayside. This includes its licensing, the administration costs and some of the recent developments between Sun and MySQL.
voice your opinion now!
mysql oracle database compare powerful license administration
Developer Tutorials Blog: Extracting text from Word Documents via PHP and COM
by Chris Cornutt March 26, 2008 @ 12:02:06
In a recent blog post Akash Mehta showed how to reach into a Microsoft document (a Word file) and pull out the content inside via a PHP script.
Communicating via COM in PHP is easy as ever; especially for people coming from a VB background where executing complex tasks in MS-applications is a piece of cake, you will feel right at home in PHP. In fact, VB COM calls can be converted to PHP COM calls in just a few simple search and replaces.
He shows how to use the COM extension in a (Windows) PHP installation to access the text inside the document and manipulate the contents however you'd like (even writing them back out to another Word file).
voice your opinion now!
com document word extract content manipulate
Rob Richards' Blog: PHP, Oracle and SELinux
by Chris Cornutt December 20, 2007 @ 13:41:00
Rob Richards mentioned in a previous book review about some of the issues he was having getting the Oracle extension enabled on his Fedora 8 system. Well, he's come back after doing some more testing/compiling and has found some resolution to his issues.
I really didn't need to get it running, but the sheer fact that I tried it and it wouldn't work, pissed me off enough to spend some time getting it resolved. Hopefully this helps anyone else having the same problem. I am currently using instant client 11.1, but I did try the 10.2 version with the same results.
He steps through the process he followed - tracking down the missing libaio files, correcting an issue with SELinux loading the Oracle libraries and his realization: he just needed to allow text relocation. Included in the post are the command line calls that'd need to be made to make it all happen.
voice your opinion now!
oracle selinux compile fedora redhat linux install oracle selinux compile fedora redhat linux install
Jason Sweat's Blog: PHP Oracle Web Development (Review)
by Chris Cornutt November 22, 2007 @ 07:57:00
Jason Sweat has written up a review of Packt Publishing's latest PHP-related offering (well, one of them) - "PHP Oracle Web Development".
I was recently given the opportunity to review a new book on the subject of PHP and Oracle databases. We use Oracle databases nearly exclusively at work, so this seemed like a good opportunity to me.
Jason talks about the book in general (mentioning something I hadn't seen an other reviews of the book - what else the author does besides writing books) and moves on to look at each of the chapters a bit more in depth. He notes, though, that the book seems to try to aim at a general Oracle audience wanting to learn PHP, developers might be better off picking up something that starts from scratch rather than tries to jump in in the middle.
voice your opinion now!
book review packt publishing oracle development book review packt publishing oracle development
Developer.com: Combining an Oracle Database with PHP to Manage Data
by Chris Cornutt October 08, 2007 @ 07:56:00
Developer.com has posted a new article today from Deepak Vohra taking a look at the powerful combination of an Oracle database and PHP to create a simple, example app.
In this article, you will install PHP's OCI extension for Oracle database, decide which connection method to use, create a database, and retrieve data from that database and display it in a table.
They walk through the installation of the extension (on a Windows machine), some of the configuration directives you can set in the php.ini, the Oracle functions, and finally a look at connection methods and inserting/viewing information from a table. The complete code/sql for the article is also included.
voice your opinion now!
oracle tutorial extension windows oracle tutorial extension windows
Christopher Jones' Blog: New PDO_OCI Attributes
by Chris Cornutt September 19, 2007 @ 09:37:00
Christopher Jones talkes about some updates that he's made to the default PDO functionality of PHP, adding in a few things like pre-fetching and methods to get the details of the database server you're using.
After PHP 5.2.4 shipped and a new release cycle began, I merged a couple of enhancements to PDO_OCI attribute handling. Specifically I added $dbh->getAttribute() support for ATTR_SERVER_VERSION, ATTR_SERVER_INFO, ATTR_CLIENT_VERSION and. ATTR_AUTOCOMMIT. At the moment these are only available in the PHP snapshots on http://snaps.php.net/. Let me know if there are any issues so they can be resolved before the next PHP release.
He gives examples of two things - the pre-fetching functionality, allowing for better optimization for a query, and the transaction management features, making it as simple as a try{} block to test the commit and rollback if needed.
He also mentions other properties/attributes included in the new release - ATTR_PERSISTENT, ATTR_TIMEOUT, ATTR_ORACLE_NULLS, ATTR_CASE and ATTR_ERRMODE, ATTR_SERVER_VERSION and ATTR_CLIENT_VERSION (the last two have examples).
voice your opinion now!
pdo oci oracle attribute prefetching transaction namagement pdo oci oracle attribute prefetching transaction namagement
WebReference.com: XML-Enabled Applications
by Chris Cornutt September 17, 2007 @ 10:24:00
WebReference.com has an excerpt posted from one of Packt Publishing's latest PHP-related offerings, "PHP Oracle Web Development: Data processing, Security, Caching, XML, Web Services, and Ajax" (by Yuli Vasiliev). This specific chapter talks about XML-enabled applications and how PHP fits into the mix.
Both PHP and Oracle provide comprehensive support for XML and XML-related technologies. Practically, this means you can perform any XML processing either with PHP or inside an Oracle database. [...] This chapter explains how to effectively use XML techniques and technologies available in PHP and Oracle when building XML-enabled PHP/Oracle applications.
They cover the processing of XML in PHP/Oracle apps (including the SAX, DOM and SimpleXML methods), working with XPath and processing the XML in the other half of the two - Oracle's XML processing functionality.
Check out the Packt website for more information on the book.
voice your opinion now!
xml application oracle process simplexml dom sax xml application oracle process simplexml dom sax
Christopher Jones' Blog: Time for testing the final PHP 5.2 release
by Chris Cornutt August 10, 2007 @ 07:57:00
On his blog today, Christopher Jones mentions some updates that are going to be included in upcoming PHP versions as pertains to the Oracle functionality that comes bundled in.
What is happening with PHP 5 is that some bigger enhancements will be merged into a planned PHP 5.3 release. [...] Even if you are still using PHP 4, or PHP 5.1, any testing you do on 5.2.4 right now will benefit you when you get around to upgrading. PHP 5.2.4 includes OCI8 (and PDO_OCI) of course, as the code base is picked up from PHP's CVS system.
There's also a list included of bugs that have been fixed in this latest version of the PECL OCI8 connectivity including a problem with a memory limit, a segfault issue when rebinding a re-executing a statement with LOB and an allowance for the statement cache size for non-persistent connections.
voice your opinion now!
oracle oci8 connectivity php5 update pecl oracle oci8 connectivity php5 update pecl
Maggie Nelson's Blog: When PHP and Oracle assume the worst about each other
by Chris Cornutt June 13, 2007 @ 10:10:00
As mentioned by Ben Ramsey today, Maggie Nelson bumped into an issue in one of her applications with character sets and the incorrect storage/retrieval of information:
Even Oracle, which usually gets storing of data right on the money has had issues with character sets. [...] Needless to say, even when you *know* you set up your database correctly for supporting UTF8, the path to debug issues may be frustrating and full of red herrings.
She mentions the setup the application is using (NLS_CHARACTERSET AL32UTF8, NLS_NCHAR_CHARACTERSET AL16UTF16) but something wasn't right. The problem popped up when they tried to store Chinese characters into the database with the result of invalid data on a select.
After following several different leads, they finally came upon the culprit - the Apache process didn't have the access it needed to a directory in the ORACLE_HOME. In the end, it all only broke down into three easy steps to fix a very frustrating issue.
voice your opinion now!
oracle utf8 characterset nls unicode oracle utf8 characterset nls unicode
Oracle Technology Network: Creating an Ajax Process Using PHP and Oracle
by Chris Cornutt January 31, 2007 @ 11:07:00
From the Oracle Technology Network website, there's a new tutorial in the Oracle+PHP Cookbook series that focuses on using PHP and Oracle together with Ajax to create a simple HTML form example.
In this recipe, I discuss all the code necessary to use Ajax to go from a simple Web page to a JavaScript function to an XMLHttpRequest to a PHP script and, finally, to an Oracle database. Along with the code, I do talk about the individual pieces with respect to the whole picture: what each chunk does and why it's important. By reading this HowTo, you will acquire not only some sample code but also, hopefully, a broader understanding of the whole Ajax concept.
They step through the creation of the background database tables, including the insertion of some sample data. Next up is the creation of the query to run our check, then testing the script to ensure things are set up as they need to be, and finally, creating the front-end - writing the HTML and Javascript to make the form.
The end result is a simple form that, when the contents of the text field are changed, a message is sent back to the server to check and see if the email address entered already exists.
voice your opinion now!
ajax oracle database html javascript email validation tutorial ajax oracle database html javascript email validation tutorial
ThinkPHP Blog: Oracle with PHP and PDO
by Chris Cornutt October 27, 2006 @ 10:35:00
In his latest post on the ThinkPHP blog, Andreas Uhsemann steps through a simple conversion he made from using a MySQL database with his application to using PDO on an Oracle system.
At first, one would notice that nothing was happening at all. Just a white screen, and no entries in the error log. Even if one turns on error messages explicitly (you never know the current php.ini settings) with error_reporting(E_ALL), nothing is changing.
He had the connection all set up (manual tnsnames entry and all), but there was something wrong and he couldn't see it. After changing the error reporting level (to no avail), he went for PDO's error handling. The result was an "invalid character" error from the extra semi-colon on the end of the statement.
voice your opinion now!
oracle mysql pdo error logging tnsnames handling oracle mysql pdo error logging tnsnames handling
Andi Gutmans' Blog: PHP and Database Connection Pooling
by Chris Cornutt October 25, 2006 @ 15:05:00
Hot on the heels of this announcement, Andi Gutmans has posted some of his thoughts on this new functionality and how it can help companies both large and small (he mentions specifically Yahoo! of course).
In my experience, databases have had a long history of being the typical bottleneck in PHP applications. There are many reasons for that.
His reasons include the fact that web apps being heavily database driven, PHP developers would rather write PHP than SQL, and that there's a lack of good, cheap tools to help find these bottlenecks. What he focuses on most, though, is the overhead caused by the need for multi-process environments to force each process to manage their own connections to the databse.
He talks about some stats on average connections and application speed, about efforts IBM has made to help the situation, and how it's not necessarily just the server's fault for delegating out the database resources - why can't they all adapt?
voice your opinion now!
database connection pooling oracle ibm bottleneck connection manage database connection pooling oracle ibm bottleneck connection manage
Christopher Jones' Blog: Review PHP Web Programming
by Chris Cornutt October 23, 2006 @ 08:21:00
On his Oracle blog, Christopher Jones has posted a brief review of a book from Oracle spotlighting "PHP Web Programming", from author Michael McLaughlin.
Michael McLaughlin calls his new book PHP Web Programming an enabling book. I'd go further and call it a desert island book. It is the only thing you'd need to carry. It has much reference material strategically placed in the text, well thought out examples, and teaches how to build applications.
Christopher mentions some of the contents of the book - HTTP authentication, the POSIX file function,strings/objects, error handling, etc - it has it all. It especially has detailed information about using PHP with Oracle - PL/SQL, LOBs, REF CURSORS, and much more. It comes with a CD of code and applications, everything you'd need to get a PHP/Oracle installation up and running including the Oracle Database 10g Express Edition, Zend Core for Oracle's PHP stack, and the Apache web server.
voice your opinion now!
book review web programming oracle zend core express edition book review web programming oracle zend core express edition
Alison Holloway's Blog: New Zend Core for Oracle Released
by Chris Cornutt September 20, 2006 @ 06:53:35
Alison Holloway has announced that there's a new version of the Zend Core for Oracle out on the streets and can be downloaded here.
Zend have just released a new version of Zend Core for Oracle, the prebuilt stack of Oracle Instant Client, Apache and PHP. It's version 1.5 and now has an optional installation of Apache 2.0.59. It used to automatically install Apache 2 whether you wanted it or not, but now you can use an existing web server, either Apache, IIS, or Oracle's HTTP Server.
It's now using PHP 5.1.6, the latest OCI8 extension (Oracle's PHP driver), and Oracle Instant Client. This stack has a native installer, and it's available on Linux, AIX, Solaris and Windows.
You can get complete details on the package from this page on the Zend webstite including highlights and the system requirements to get it up and running.
voice your opinion now!
zend core oracle release stack native installer zend core oracle release stack native installer
InformBank.com: How to create Microsoft Office documents on the fly using PHP
by Chris Cornutt August 07, 2006 @ 11:57:37
In this new tutorial from InformBank posted today, they show how to use PHP (and a few handy tricks) to create Microsoft Office documents on the fly.
Sometimes you have to generate some MS Office document for the users of your website using dynamic data. For example, few days ago, I had to generate some Excel reports using data from some tables in MySQL. I knew about the COM but it has a lot of disadvantages, including Windows-only platform and not very high speed. CSV is much easier and faster but you can't format the cells to make them better-looking. The method I've never thought about before was using HTML.
So here came the inspiration and after some research and experiments I wrote this tutorial for all of you who are looking how to create Office documents on the fly using PHP. Of course, I included the COM methods and some methods to create other MS Office documents like DOC and PPT, to make this tutorial as full and as useful as possible.
The tutorial starts with the creation of documents (Word, Excel, Powerpoint) with the COM functionality (the standby method PHP has had for a while). Of course, it also requires the script to be running on Windows to work. So, what's the other option? As he goes on to explain, it's something as simple as HTML.
He includes two examples of alternate mathods, showing hhow to use HTML or a CSV file to create a custom Excel document. He also throws in some code to help you stream out the resulting document as a zip file to the browser.
voice your opinion now!
microsoft document onthefly com extension html csv file microsoft document onthefly com extension html csv file
Zend Developer Zone: Book Review The Underground PHP and Oracle Manual
by Chris Cornutt July 11, 2006 @ 14:35:55
The Zend Developer Zone has a new book review today - a look at the Oracle Technology Network offering "The Underground PHP and Oracle Manual" .
Released last month by Oracle and trumpeted from Chris Jones' blog, The Underground PHP and Oracle Manual is an excellent guide for anyone looking to work with these two technologies.
I'm not a fanboy for Oracle but this review will read like one. It's hard to find anything to criticize in this book. It's an easy read and it's not burdened with unnecessary technical jargon. This is a book I will recommend to my friends who know Oracle and want to know more about PHP or visa-versa.
In his long version, Cal talks about the climate for PHP books these days, noting how much the author's skill has to do with its success. Thankfully, this book is doing just fine. He talks about the contents of the different chapters, brief summaries of what to expect.
His only complaint? That he'd like it in a book (dead tree) editon too...
voice your opinion now!
book review oracle underground manual book review oracle underground manual
Laura Thomson's Blog: Jobs @ OmniTI
by Chris Cornutt June 27, 2006 @ 05:44:01
OmniTI, the company that employs such PHP notables as Wez Furlong, Laura Thomson, and George Schlossnagle, is hiring according to this new post from Laura.
We are currently in need of four people:
- A junior PHP dev
- A junior-ish web designer (Photoshop, HTML, CSS, Javascript + ideally some coding)
- An Oracle DBA
- A PostgreSQL DBA
The job ads will be up on our website shortly, but if you are eager to act before then, please email me your resume at jobs@omniti.com.
You can find out more about OmniTI as a company from their site and more about previous jobs and how they hire from these two links.
voice your opinion now!
jobs omniti employment junior developer web designer oracle dba postgresql jobs omniti employment junior developer web designer oracle dba postgresql
Bshensky's LiveJournal: Oracle Support without a Recompile
by Chris Cornutt June 07, 2006 @ 06:07:57
One struggle seems to come up over and over again for several PHP developers out there - Oracle issues. Newsgroups and message boards are filled with questions and, sometimes, a few answers. bshensky is one such user - but one that found a way to get the PEAR DB package to connect to Oracle simply and without the usual recompile it would take to get the Oracle drivers successfully installed.
I have spent a dog's age researching how to get my local PHP install to talk to Oracle using PEAR and the OCI8 client stack on my Fedora Core 4 server. I eventually came to the conclusion that it was just not possible to get OCI8 to work with a RPM(binary)-install of PHP, and I looked toward other means of getting "Web access" to Oracle using different means.
Today, I found an interesting document on the Oracle Web site that allegedly details how to get the new PECL PDO database drivers for Oracle running on PHP 5 (luckily, I run PHP 5 on my FC4 box).
The document claimed that you could use PDO to load a database driver on the fly without the need for a recompile. All bshensky saw left to do was getting PDO installed (via PEAR) and getting it to pick up on the Oracle libraryes to help make the connection. A few quick commands and environment variables later, he had a complete and working PHP install with Oracle functionality called on the fly.
voice your opinion now!
oracle support libraries pdo recompile pear pecl oracle support libraries pdo recompile pear pecl
Kian Hui Teo's Blog: Switching between PHP 5.1.x and Zend Core for Oracle
by Chris Cornutt May 22, 2006 @ 17:46:32
Via this post from Christopher Jones we learn about Kian Hui Teo's blog post talking about making the switch between the normal PHP 5.1.x installation and the Zend Core for Oracle.
This situation arises as I had installed Zend Core for Oracle (ZCO), and I wanted to try out some PDO functions. As ZCO comes with PHP 5.0.5, I was stuck, and PDO is only included from PHP 5.1.x onwards, I had to install PHP 5.1.x on my Windows box so that I can play with PDO. The assumption is that we have ZCO installed and working with a Apache2 server. I share the steps here on how to install another version of PHP so that it will co-exist peacefully with ZCO.
The post outlines a process to allow both the Zend Core and a normal installation of PHP 5.1.x to live peacefully (and still be able to switch from one to the other at any time). It's actually a relatively simple ten-step process to follow, especially if you've had much experience with installing PHP from scratch. When complete, you can start up one or the other, making it easy to test scripts in both or to just use the functionality in one (as he needed with PDO).
voice your opinion now!
zend core oracle php5 switch one machine pdo zend core oracle php5 switch one machine pdo
Christopher Jones' Blog: Getting Oracle Connection Errors Faster in PHP
by Chris Cornutt May 04, 2006 @ 06:47:44
On his Oracle blog today, Christopher Jones has posted a simple howto on getting the feedback the PHP Oracle functions throw when they error, only faster.
When a connection fails, you want to know about it as soon as possible. With Oracle Net there are many ways to configure connection and authentication.
For example a connection:
$c = oci_connect("hr", "hr", "abc");
could be evaluated by Oracle 10g as using the Easy Connect syntax to machine "abc" (using the default port and database service) or using a net alias "abc" configured in a tnsnames.ora file.
He includes some settings to add to the sqlnet.ora file to help speed thing along - setting the directory path to enable a different authentication syntax and changing a setting to restrict the types of connect methods the client can try.
To show how it all works together, he gives an example of the tnsnames.ora, sqlnet.ora, environment variables, and the commands he ran to test it all out.
voice your opinion now!
oracle connection errors faster method restrict oracle connection errors faster method restrict
Christopher Jones' Blog: How to Use IIS, PHP and Oracle
by Chris Cornutt May 01, 2006 @ 07:24:20
Christopher Jones has posted his howto over on his Oracle blog today - a look at a common problem when using IIS, PHP, and Oracle due to incorrect permissions.
Your Windows machine has IIS, PHP and Oracle. You create a PHP script using the oci8 extension and it calls PHP5 functions like oci_connect(), oci_parse(), or PHP4 functions like OCILogon() and OCIParse(). You invoke the script and get errors like:
"Warning: ocilogon() [function.ocilogon]: OCIEnvInit() failed." or "Unable to load dynamic library php_oci8.dll - Access is denied"
The cause is the unauthorized anonymous login the IIS server is trying to use. His solution is simple: "give it to them" (the permissions, that is). In four easy steps (including the client install and rebooting IIS) you should be bug free and running smooth.
voice your opinion now!
iis oracle common bug premissions error iis oracle common bug premissions error
Oracle: PHPFest at LinuxWorld Boston 2006
by Chris Cornutt April 04, 2006 @ 07:14:55
As a part of the LinuxWorld Boston (2006) Conference for this year, Oracle is hosting a PHPFest, a place to get help installing Oracle's 10g Express Edition (Oracle Database XE) product.
Bring your laptop and get up and running on Oracle Database 10g Express Edition (Oracle Database XE) on Linux and Zend Core for Oracle. Walk away with a complete enterprise Oracle and PHP environment completely free of charge!
Ideal for developers, Oracle Database XE is free to develop, deploy, and distribute. Join Oracle experts as they demonstrate best practices for Oracle and PHP on Linux and interoperability with SQL, Java, and BPEL while taking advantage of PHP's explosive growth and new functionality.
For more information on the wheres and whens of this offer or to register, check out this page on the Oracle site.
voice your opinion now!
oracle install linuxworld boston 2006 datbase XE oracle install linuxworld boston 2006 datbase XE
Ajax Developer's Jorunal: Zend Announces Update Of Zend Core For Oracle
by Chris Cornutt March 09, 2006 @ 07:47:50
From this post on the Ajax Developer's Journal site we learn that there has been an update to the Zend Core for Oracle - the addition of enhanced PL/SQL support and validation functionality for Oracle Database XE.
Zend Technologies, Inc., the PHP company, has announced an updated version of Zend Core for Oracle, which supports businesses using PHP for mission-critical Web applications by delivering a reliable, high performance, easy-to-install PHP development and production environment fully integrated with the Oracle Database 10g.The new release is validated with Oracle Database 10g Release 2, including the Oracle Database 10g Express Edition (Oracle Database XE).
In addition to validation of Oracle Database 10g Release 2, the update to Zend Core for Oracle has enhanced support for Oracle Procedural Language for SQL (PL/SQL) collection types, giving significantly improved performance. Developers can access PL/SQL directly from PHP in a single, fully integrated environment.
You can download this latest update directly from the Zend site
voice your opinion now!
zend core oracle update pl/sql support validation XE zend core oracle update pl/sql support validation XE
Oracle Technology Network: Building PHP Applications Using the ATK Framework
by Chris Cornutt February 16, 2006 @ 15:54:43
On the Oracle Technology Network today, there's this new tutorial that covers the rapid creation of PHP applications with the help of the Achievo ATK PHP application framework.
In this article, you will learn the power of this combination by using the open source Achievo ATK PHP application framework to build a Web application on top of an existing Oracle database. Using the venerable scott schema as an example, you will see how to build a Web application with full CRUD (create, read, update, delete) support for managing employees and departments in just a few steps and in fewer than 100 lines of code.
The tutorial introduces the framework and leads you through how to get it all installed on your (Linux/Unix or Windows) system. From there, it's all code - creating the initial module, adding nodes to perform actions, and linking them together with relations in the data.
voice your opinion now!
oracle technology network build application ATK framework oracle technology network build application ATK framework
Lukas Smith's Blog: Oracle goes shopping. Do we have an answer?
by Chris Cornutt February 16, 2006 @ 06:51:02
Lukas Smith has a new post over on his blog with his take on the moves that Oracle has been taking with several Open Source companies out there (such as Sleepycat).
The topic at hand is Oracle buying one dual license open source company after another. This is getting a lot of people worried. Of course it also got me thinking.
Dual licensing is a business model associated with companies distributing their code under two very different licenses. However the same code is also provided through some open source license, usually one of the so called reciprocal licenses (GPL and friends).
That system is pretty nice on many levels. Everybody gets the code with the license they prefer. The dual licensing company benefits through a cheap open source style distribution model. However they can still make money with selling licenses which is a very lucrative business model, while they can also make money through support.
He continues, mentioning some of the serious flaws with this dual license model, including the inability for a company, at any time, to move to a more closed-source method of development. He even mentions a situation where a project could loose all developers.
And, in his words:
So are we up for the challenge if we are faced with such an exodus?
voice your opinion now!
oracle shopping open source dual licensing exodus developers oracle shopping open source dual licensing exodus developers
Oracle Technology Network: How To Encrypt Data in Oracle Using PHP
by Chris Cornutt December 21, 2005 @ 07:25:27
From the Oracle Technology Network site today, there's this new HowTo on encrypting you data in Oracle using PHP.
A crucial but easily overlooked aspect of data storage is protecting sensitive information'"from passwords, to credit cards, to social security numbers'"using encryption. Thus an understanding as to what encryption techniques are available in Oracle (via a PHP interface), and how best to use them, is important for all Web developers.
In this HowTo, you'll get a brief introduction to the necessary tools, and even get some specific code, for improving the security of your data.
They look first at a little background - what is encryption and how is it usually used. Following that, the code comes out, showing you how to create the encryption functionality in the PL/SQL area and subit the data into the procedure via PHP. They show three different kinds of storage methods you can use as well - hashed, MAC, and AES encryption.
Thanks to Nexen.net for the pointer...
voice your opinion now!
oracle encryption aes hash mac oracle encryption aes hash mac
Oracle Technology Network: Persisting PHP5 Objects in Oracle
by Chris Cornutt December 12, 2005 @ 14:53:00
On the Orcale Technology Network's site today, there's this look at working with Oracle to make PHP5 objects persistent.
Many developers have been won over by the elegance and efficiency of PHP5's implementation of object-orientation, and are equally drawn to the power and robustness of the world's foremost database, Oracle. However, taking the next logical step'"storing PHP objects in your database for Web application development'"can be intimidating.
In this HowTo, you will learn how to store and retrieve PHP5 objects as objects in an Oracle Database via an object persistence layer (available in the OracleDatabaseObject package download). This technique allows any Oracle developer to take the final step toward full object-orientation in their Web applications'"and hence toward a renewed focus on application logic, rather than messy SQL and coding.
They discuss what the Object Persistence Layer is and how it works - including what PHP vars correspond to what column types in Oracle. From there, they get into the heart of the matter - adding persistence to a class, how to set them up and how to use (load) them...
voice your opinion now!
oracle persisting object PHP5 oracle persisting object PHP5
Wez Furlong's Blog: Oracle's PHP Developer of the year 2005
by Chris Cornutt November 21, 2005 @ 05:49:21
Many congratulations go out to Wez Furlong for being awarded the "Oracle PHP Developer of the Year" award for 2005.
You may remember that Oracle Magazine were asking for nominations to honour people that have worked in some Oracle-related facility over the past year. Someone nominated me for the "PHP Developer of the year" category, and I "won" the award.
I'm normally a bit sceptical of awards because they're somewhat arbitrary and tend to be rather intangible, however, Oracle Magazine have gone the whole nine yards to counter that intangibility aspect. I suspect that I won the award as a result of my efforts in developing PDO, the PDO OCI driver and my role in the redesign of the oci8 extension.
He also mentions the work that Antony Dovgal has put in on the same extension as well. You can also check out the formal article on the topic...
voice your opinion now!
wez furlong oracle developer year 2005 wez furlong oracle developer year 2005
Oracle Technology Network: DeployPHP Series, Part 5 - Zend Core for Oracle Quick Start
by Chris Cornutt November 17, 2005 @ 06:00:07
Today on the Oracle Technology Network, there's an article from Matt Kern with a detailed look at getting the Zend Core for Oracle working on your installation.
Since the early days PHP has been able to talk to Oracle-but it wasn't easy. Deploying PHP with Oracle was complicated at best, requiring developers and administrators to find, download, compile, link and configure multiple applications and packages. Unfortunately, this fact was counterintuitive for PHP users, as PHP has always been known for rapid deployment and quick time to market, not cumbersome processes better left to the C curmudgeons.
Thanks to the latest collaborative effort between Oracle and Zend, those days are history. Zend Core for Oracle allows developers to install, deploy, and configure PHP and Oracle just about as quickly and painlessly as possible. In this final installment of the DeployPHP series, you'll learn how that process works.
He takes his time and even includes a "Benefits for You" and "Benefits for Bosses" section to get the ball rolling. From there, he installs Apache, then installs the Core (complete with its own text UI installer). From there, it's all just a matter of configuration - and, of course, there's a whole interface to makes changes to that as well.
I'm really impressed at how this Oracle/PHP integration has turned out. When I first read things about it, I thought it was just a replacement for the Oracle drivers that PHP was using - but it's that and much more...check it out!
voice your opinion now!
zend core oracle install tutorial zend core oracle install tutorial
|
Community Events
Don't see your event here? Let us know!
|