phptest table * * Tries to drop the table first, in case it already exists. * *
 * CREATE TABLE phptest (
 *   a INTEGER NULL,
 *   b CHAR(40) DEFAULT 'def' NOT NULL,
 *   cc VARCHAR(255) NULL,
 *   d VARCHAR(20) NULL)
 * 
* * Need NOT NULL on b to test * DB_PORTABILITY_RTRIM. MS SQL and Sybase trim output from * VARCHAR, but not on CHAR. * * Need DEFAULT value on b because Oracle considers * an empty string to be NULL. * * In Oracle, when using placeholders in WHERE clauses on * CHAR columns, the column must have RTRIM() run on * the column: * * SELECT * FROM phptest WHERE RTRIM(b) = ? * * * PHP versions 4 and 5 * * LICENSE: This source file is subject to version 3.0 of the PHP license * that is available through the world-wide-web at the following URI: * http://www.php.net/license/3_0.txt. If you did not receive a copy of * the PHP License and are unable to obtain it through the web, please * send a note to license@php.net so we can mail you a copy immediately. * * @category Database * @package DB * @author Daniel Convissor * @copyright 1997-2007 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License 3.0 * @version $Id: mktable.inc 284375 2009-07-19 16:26:16Z danielc $ * @link http://pear.php.net/package/DB */ /** * Establishes the DB object and connects to the database */ require_once dirname(__FILE__) . '/connect.inc'; /** * Get the drop_table() function */ require_once dirname(__FILE__) . '/droptable.inc'; /** * The error handler for the drop table procedure * * Prints out an error message and dies. */ function debug_die($o){ die($o->toString()); } $dbh->setErrorHandling(PEAR_ERROR_RETURN); drop_table($dbh, 'phptest'); //$dbh->setErrorHandling(PEAR_ERROR_TRIGGER); $dbh->setErrorHandling(PEAR_ERROR_CALLBACK, 'debug_die'); if ($dbh->phptype == 'odbc') { if ($dbh->dbsyntax == 'odbc') { $type = $dbh->phptype; } else { $type = $dbh->dbsyntax; } } else { $type = $dbh->phptype; } switch ($type) { case 'access': $null = 'NULL'; $chrc = 'VARCHAR(255)'; $chrd = 'VARCHAR(20)'; $default = ''; $tabletype = ''; break; case 'db2': case 'ibase': $null = ''; $chrc = 'VARCHAR(255)'; $chrd = 'VARCHAR(20)'; $default = "DEFAULT 'def' NOT NULL"; $tabletype = ''; break; case 'fbsql': $null = ''; $chrc = 'CHAR(255)'; $chrd = 'CHAR(20)'; $default = "DEFAULT 'def' NOT NULL"; $date_literal = ' DATE '; $tabletype = ''; break; case 'ifx': // doing this for ifx to keep certain versions happy $null = ''; $chrc = 'CHAR(255)'; $chrd = 'CHAR(20)'; $default = "DEFAULT 'def' NOT NULL"; $tabletype = ''; break; case 'msql': $null = ''; $chrc = 'CHAR(255)'; $chrd = 'CHAR(20)'; $default = ''; $tabletype = ''; break; case 'mysql': case 'mysqli': $null = 'NULL'; $chrc = 'VARCHAR(255)'; $chrd = 'VARCHAR(20)'; $default = "DEFAULT 'def' NOT NULL"; if (!empty($needinnodb)) { $tabletype = 'TYPE=INNODB'; } else { $tabletype = ''; } break; default: $null = 'NULL'; $chrc = 'VARCHAR(255)'; $chrd = 'VARCHAR(20)'; $default = "DEFAULT 'def' NOT NULL"; $tabletype = ''; } switch ($dbh->phptype) { case 'dbase': // file exists or was created in DB_dbase::connect() break; default: $test_mktable_query = " CREATE TABLE phptest ( a INTEGER $null, b CHAR(40) $default, cc $chrc $null, d $chrd $null) $tabletype "; } $dbh->query($test_mktable_query); $dbh->query("INSERT INTO phptest VALUES(42, 'bing', 'This is a test', '1999-11-21')"); $dbh->setErrorHandling(PEAR_ERROR_RETURN);