Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > by-pkgid > 80f250ca376f4be3d6aca282eafc86a6 > files > 7

php-drizzle-0.4.1-2mdv2010.0.i586.rpm

<?php
# Drizzle PHP Extension
#
# Copyright (C) 2008 Eric Day (eday@oddments.org)
#             James M. Luedke (contact@jluedke.com)
                     
# All rights reserved.
#
# Use and distribution licensed under the PHP license.  See
# the LICENSE file in this directory for full text.


$db= 'INFORMATION_SCHEMA';
$query= 'SELECT * FROM COLUMNS LIMIT 3';
$options = DRIZZLE_CON_NONE;
# To test against MySQL uncomment
# $options = DRIZZLE_CON_MYSQL;

$concurrent_queries= 5;

print "<html><body><pre>\n";
$begin= gettimeofday(true);

print 'Version: ' . drizzle_version() . "\n\n";

print "##########################\n";
print "Testing function interface\n";
print "##########################\n";

$drizzle= drizzle_create();
if (!$drizzle)
  exit(0);

$con= drizzle_con_add_tcp($drizzle, NULL, 0, "root", NULL, $db, $options);
if (!$con)
  exit(0);


print "\nResult Buffering\n";

$result= drizzle_query($con, $query);
if (!$result)
  exit(0);

if (! drizzle_result_buffer($result))
  exit(0);

while (($column= drizzle_column_next($result)) != NULL)
  print drizzle_column_name($column) . ':';
print "\n";

while (($row= drizzle_row_next($result)) != NULL)
  print implode(':', $row) . "\n";


print "\nRow Buffering\n";

$result= drizzle_query($con, $query);
if (!$result)
  exit(0);

while (($column= drizzle_column_read($result)) != NULL)
  print drizzle_column_name($column) . ':';
print "\n";

while (($row= drizzle_row_buffer($result)) != NULL)
  print implode(':', $row) . "\n";


print "\nField Buffering\n";

$result= drizzle_query($con, $query);
if (!$result)
  exit(0);

if (! drizzle_column_skip($result))
  exit(0);

while (($row= drizzle_row_read($result)) != 0)
{
  while (1)
  {
    $field= drizzle_field_buffer($result);
    $ret= drizzle_result_return_code($result);
    if ($ret == DRIZZLE_RETURN_ROW_END)
      break;
    else if ($ret != DRIZZLE_RETURN_OK)
      exit(0);

    print $field . ':';
  }

  print "\n";
}


print "\nNo Buffering\n";

$result= drizzle_query($con, $query);
if (!$result)
  exit(0);

if (! drizzle_column_skip($result))
  exit(0);

while (($row= drizzle_row_read($result)) != 0)
{
  while (1)
  {
    list($field, $offset, $total)= drizzle_field_read($result);
    $ret= drizzle_result_return_code($result);
    if ($ret == DRIZZLE_RETURN_ROW_END)
      break;
    else if ($ret != DRIZZLE_RETURN_OK)
      exit(0);

    print $field;

    if ($offset + strlen($field) == $total)
      print ':';
  }

  print "\n";
}

print "\n\n";


print "########################\n";
print "Testing method interface\n";
print "########################\n";

$drizzle= new Drizzle();
if (!$drizzle)
  exit(0);

$con= $drizzle->addTcp(NULL, 0, "root", NULL, $db, $options);
if (!$con)
  exit(0);


print "\nResult Buffering\n";

$result= $con->query($query);
if (!$result)
  exit(0);

if (! $result->buffer())
  exit(0);

while (($column= $result->columnNext()) != NULL)
  print $column->name() . ':';
print "\n";

while (($row= $result->rowNext()) != NULL)
  print implode(':', $row) . "\n";


print "\nRow Buffering\n";

$result= $con->query($query);
if (!$result)
  exit(0);

while (($column= $result->columnRead()) != NULL)
  print $column->name() . ':';
print "\n";

while (($row= $result->rowBuffer()) != NULL)
  print implode(':', $row) . "\n";


print "\nField Buffering\n";

$result= $con->query($query);
if (!$result)
  exit(0);

if (! $result->columnSkip())
  exit(0);

while (($row= $result->rowRead()) != 0)
{
  while (1)
  {
    $field= $result->fieldBuffer();
    $ret= $result->returnCode();
    if ($ret == DRIZZLE_RETURN_ROW_END)
      break;
    else if ($ret != DRIZZLE_RETURN_OK)
      exit(0);

    print $field . ':';
  }

  print "\n";
}


print "\nNo Buffering\n";

$result= $con->query($query);
if (!$result)
  exit(0);

if (! $result->columnSkip())
  exit(0);

while (($row= $result->rowRead()) != 0)
{
  while (1)
  {
    list($field, $offset, $total)= $result->fieldRead();
    $ret = $result->returnCode();
    if ($ret == DRIZZLE_RETURN_ROW_END)
      break;
    else if ($ret != DRIZZLE_RETURN_OK)
      exit(0);

    print $field;

    if ($offset + strlen($field) == $total)
      print ':';
  }

  print "\n";
}

print "\n\n";


print "##########################\n";
print "Concurrent query interface\n";
print "##########################\n";

$drizzle= new Drizzle();
if (!$drizzle)
  exit(0);

for ($x= 0; $x < $concurrent_queries; $x++)
{
  $con= $drizzle->addTcp(NULL, 0, "root", NULL, $db, $options);
  if (!$con)
    exit(0);

  if (!$drizzle->queryAdd($con, $query, 0, $x))
    exit(0);
}

while ($q = $drizzle->run())
{
  $data= $q->data();
  $result= $q->result();
  if ($result->errorCode())
  {
    print "$data " . $result->error() . "\n";
    continue;
  }

  while (($column= $result->columnNext()) != NULL)
    print $column->name() . ':';
  print "\n";

  while (($row= $result->rowNext()) != NULL)
    print "$data " . implode(':', $row) . "\n";
  print "\n";
}

if ($drizzle->returnCode() != DRIZZLE_RETURN_OK)
  exit(0);


printf("\nPage Loaded in %.6f seconds.", gettimeofday(true) - $begin);
print "</pre></body></html>\n";