Re: [PHP-WIN] 5.3.9RC2 and 5.4RC2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 28, 2011 at 1:34 AM, Pierre Joye <pierre.php@xxxxxxxxx> wrote:
> On Mon, Nov 28, 2011 at 5:51 AM, Tommy Pham <tommyhp2@xxxxxxxxx> wrote:
>
>> Can someone please confirm if you're able to create/drop MySQL
>> database on using phpMyAdmin with PHP 5.3.9RC2 or PHP5.4RC2?
>
> Please use the sqlsrv or mysql functions directly with CREATE/DROP
> queries in a little script, it will be easier to debug.
>
> Cheers,
> --
> Pierre
>
> @pierrejoye | http://blog.thepimp.net | http://www.libgd.org
>

I don't know what happened last night. After about 2 hours trying to make
some progress but failed, I called it a night.  I just tried again to see
if I had the same problems as last night.  Apparently, I don't, even after
several attempts to duplicate last night problems.  Anyway, I got a few
things setup to facilitate troubleshooting the compatibilities, including
bug report Doc #60404.  Here comes a wall of text from about 5-6 hours of
testing, mostly for sqlsrv ... LOL.


5.3.5 5.3.9RC2 5.4.0RC2  error_reporting
E_ALL & ~E_DEPRECATED & ~E_STRICT 22527 22527 22527  file_uploads On On On
log_errors On On On  log_errors_max_len 0 0 0  max_execution_time 300 300
300  max_input_time 60 60 60  memory_limit 128M 128M 128M  post_max_size 20M
20M 20M  upload_max_filesize 20M 20M 20M           Drupal 7.9 + MySQL
5.5-rc >> install OK OK OK  Drupal 7.9 + MySQL 5.5-rc >> using1 OK OK
OK  Drupal
7.9 + SQL Server 10.50.2500 >> install OK Error[3] Error[4]  Drupal 7.9 +
SQL Server 10.50.2500 >> using1 OK partial[2] partial[2]           SQL
Server install - Working Set (memory) 186,636K      SQL Server install -
Private Working Set (memory) 145,760K      SQL Server install - Commit Size
(memory) 147,736K               MySQL install - Working Set (memory)
123,552K      MySQL install - Private Working Set (memory) 86,332K      MySQL
install - Commit Size (memory) 87,648K

   1. Create and Edit the short article in the home page in each PHP
   version.
   2. Sometimes generates HTTP Error 500.0 when reading/creating/editing a
   new article.
   3. Always receive HTTP Error 500.0 after creating about 25 tables out of
   73 max.
   4. SQLSTATE[IMSSP]: An error occurred substituting the named parameters.

For 5.3.5 and 5.3.9RC2, sqlsrv driver is the same (ExtensionVer) version
2.0.1802.200 and I have xdebug trace logs of every execution. I didn't
bother with the memory comparison for 5.3.9RC2 and 5.4.0RC2 since Drupal
7.9 failed to install for sqlsvr.  There error_log file doesn't have any
errors prior to and when PHP crashed suddenly, generating the HTTP 500.

5.3.5 has 62 extensions: Core, PDO, PDO_ODBC, Phar, Reflection, SPL,
SimpleXML, bcmath, bz2, calendar, cgi-fcgi, com_dotnet, ctype, curl, date,
dom, enchant, ereg, exif, filter, ftp, gd, gettext, gmp, hash, iconv, imap,
intl, json, ldap, libxml, mbstring, mcrypt, mhash, mysql, mysqli, mysqlnd,
odbc, openssl, pcre, pdo_mysql, pdo_pgsql, pdo_sqlsrv, pgsql, session,
shmop, soap, sockets, sqlsrv, standard, tidy, tokenizer, wddx, wincache,
xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib

5.3.9RC2 has 63 extensions: Core, PDO, PDO_ODBC, Phar, Reflection, SPL,
SimpleXML, bcmath, bz2, calendar, cgi-fcgi, com_dotnet, ctype, curl, date,
dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash,
iconv, imap, intl, json, ldap, libxml, mbstring, mcrypt, mhash, mysql,
mysqli, mysqlnd, odbc, openssl, pcre, pdo_mysql, pdo_pgsql, pdo_sqlsrv,
pgsql, session, shmop, soap, sockets, sqlsrv, standard, tidy, tokenizer,
wddx, wincache, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib

5.4.0RC2 has 60 extensions: Core, PDO, PDO_ODBC, Phar, Reflection, SPL,
SimpleXML, bcmath, bz2, calendar, cgi-fcgi, com_dotnet, ctype, curl, date,
dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv,
imap, intl, json, ldap, libxml, mbstring, mcrypt, mhash, mysql, mysqli,
mysqlnd, odbc, openssl, pcre, pdo_mysql, pdo_pgsql, pdo_sqlsrv, pgsql,
session, shmop, soap, sockets, sqlsrv, standard, tidy, tokenizer, wddx,
xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib
If anyone is interested, here's my code for cleaning the db automatically
and reporting PHP version, the database (server & client) version -
specifically for Drupal 7.9:

function exceptionHandler($e)
{
    echo $e->getMessage();
    print_r($e->getTrace());
}
set_exception_handler('exception_handler');

$settings = 'sites/default/settings.php';

/** broken - file locking by IIS **
if (isset($_GET['use']))
{
    //    if (!unlink($settings))
    //        throw new Exception('Error removing old settings');
    $source = "sites/default/settings.{$_GET['use']}.php";
    switch ($_GET['use'])
    {
        case 'mysql':
        case 'mssql':
            if (file_exists($source))
                copy($source, $settings);
            //            if
(!copy(__DIR__.'/sites/default/settings.mysql.php', __DIR__.'/'.$settings))
            //                throw new Exception('Error copying MySQL
settings.');
            break;
    }
}
*/

require_once ($settings);

$driver = $databases['default']['default']['driver'];
$host = $databases['default']['default']['host'];
$database = $databases['default']['default']['database'];
$user = $databases['default']['default']['username'];
$pwd = $databases['default']['default']['password'];
$dsn = '';
$sql = array();
$sql['ShowTables'] = '';
$sql['DropTables'] = 'DROP TABLE ';
$dbTables = array();

echo '<pre>';

switch ($driver)
{
    case 'mysql':
        $dsn = "mysql:dbname={$database};host={$host}";
        $sql['ShowTables'] = "SHOW TABLES FROM {$database}";
        break;

    case 'sqlsrv':
        $dsn = "sqlsrv:database={$database};server={$host}";
        $sql['ShowTables'] = "exec sp_tables @table_owner = 'dbo',
@table_qualifier='{$database}'";
        break;
    default:
        throw new Exception("Database driver {$driver} not supported.");
}

$dbh = new PDO($dsn, $user, $pwd);
if (!($dbh instanceof PDO))
    throw new Exception("PDO failed to connect using dsn: {$dsn}");
if (($sth = $dbh->query($sql['ShowTables'])) === false)
    throw new Exception("SHOW TABLES: PDO query failed
{$sql['ShowTables']}");
switch ($driver)
{
    case 'mysql':
        foreach ($sth as $row)
            $dbTables[] = $row['Tables_in_'.$database];
        break;
    case 'sqlsrv':
        foreach ($sth as $row)
            $dbTables[] = $row['TABLE_NAME'];
        break;
    default:
        throw new Exception("Database driver {$driver} not supported.");
}

echo PHP_VERSION." >> Driver: {$driver} | Server: {$host} | Database:
{$database}".PHP_EOL;
echo "Server Version: ".$dbh->getAttribute(PDO::ATTR_SERVER_VERSION).' |
Client Version: ';
switch ($driver)
{
    case 'mysql':
        echo $dbh->getAttribute(PDO::ATTR_CLIENT_VERSION);
        break;
    case 'sqlsrv':
        print_r($dbh->getAttribute(PDO::ATTR_CLIENT_VERSION));
        break;
    default:
        throw new Exception("Database driver {$driver} not supported.");
}
echo PHP_EOL;
print_r($dbTables);

if (!empty($dbTables))
{
    $sql['DropTables'] .= implode('; DROP TABLE ', $dbTables);
    if (($sth = $dbh->query($sql['DropTables'])) === false)
        throw new Exception("DROP TABLES: PDO query failed
{$sql['DropTables']}");
    if (($sth = $dbh->query($sql['ShowTables'])) === false)
        throw new Exception("SHOW TABLES (check): PDO query failed
{$sql['ShowTables']}");
    echo "Number of tables in database {$database}: ".$sth->rowCount();
}

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux