Hello Paul,

Excellent points. I'm *shamed* .. as stated, "less painful", heh.

I believe Jiju had mentioned using .sql files as well, its a great idea.
I may try that out on my next project.

Up until taking a recent job, our shop only supported mySQL. That's where
all my experiance lies (besides a few months at a MSSQL shop).

But now we need to support MSSQL, and I just ported my SQL
php 4 libs to OOP PHP 5....(guess I'll write these libs right the first time).

I suppose I can use PEAR:DB:SQLwhatever, but I'm intimate
what my SQL code and don't want to give it up.

Anyways, thanks again to all!

- Ben

----- Original Message ----- From: "Paul Houle" <[EMAIL PROTECTED]>
To: "NYPHP Talk" <talk@lists.nyphp.org>
Sent: Saturday, March 31, 2007 10:05 PM
Subject: Re: [nyphp-talk] Creating database tables when deploying products


Ben Sgro (ProjectSkyline) wrote:

        $sqlStr = "CREATE TABLE admin "
                . " (id int(11) NOT NULL auto_increment,"
                . " username varchar(64) default '',"
                . " password varchar(64) default '',"
                . " last_login int(12)   default 0,"
                . " primary key(id, username)"
                . ')';
        DBAS_MySQLQuery($sqlStr, $db);
Not too bad, but PHP isn't Java. you can write multi-line string literals.

$sqlStr = "
   CREATE TABLE admin (id int(11) NOT NULL auto_increment,
               username varchar(64) default,
               password varchar(64) default ','
               last_login int(12)   default 0,
               primary key(id, username)
     )";

More readable, less painful. I'm thinking about this stuff too. There are lots of people who are addicted to visual tools like the "Enterprise Manager" that comes with Microsoft SQL Server. These have their place, but you really should be writing DDL (CREATE TABLE, etc.) if you want consistent results. Historically, I've written schema files into *.sql files that can be

* cut and pasted into the MS-SQL "Query Analyser",  or
* mysql -uuser -p db_name < load_schema.sql

The cross database thing is making me think about a different answer. Also lately I've been creating large numbers of repetitive tables, or groups of tables that all have certain columns (timestamps, for instance)

When it comes to cross database, however, you ought to think about the business goal you're after. It's pretty silly to support all 20 or so relational databases that PHP can connect to. Most organizations, however, will have a few databases that are reasonable targets:

* Mysql and MS-SQL: the kind of shop that likes to have it both ways with Microsoft and Open Source. You can ship apps that will keep most people happy. * Mysql and Oracle: good for the Unix shop which has both entrepreneurial projects (install Linux, start coding) and 'enterprise' systems (ask your boss to ask her boss to ask his boss to ask the DBA to make you a table) * Postgresql and MySQL: if you want to please all the open source people you meet


_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php

_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php

Reply via email to