Edit report at http://bugs.php.net/bug.php?id=51877&edit=1

 ID:               51877
 Updated by:       paj...@php.net
 Reported by:      diegoturriaga at yahoo dot com dot ar
 Summary:          php5ts.dll crash and reset Apache
-Status:           Open
+Status:           Feedback
 Type:             Bug
 Package:          Reproducible crash
 Operating System: Windows XP / 2003
 PHP Version:      5.3.2

 New Comment:

Well, not sure I can even debug that as I see no way to have the VFP
data.



But why do you use COM and ADODB instead of ODBC? ODBC will be way more
stable than ADODB through COM.


Previous Comments:
------------------------------------------------------------------------
[2010-05-21 20:14:33] diegoturriaga at yahoo dot com dot ar

<?php



$charPage = CP_UTF8;

$stringDeConexion = 'Provider=VFPOLEDB.1;Data

Source="\\server\data";Mode=ReadWrite|Share Deny

None;Password="";Collating Sequence=SPANISH;DELETED=False';

$cantRegAfectados = -1;

$consulta = 'SELECT * FROM hugedbf1 x INNER JOIN hugedbf2 y ON

x.Id=y.xId';

$conexion = null;

$rs = null;

$comando = null;

# intenta crear el objeto y conectarse

try {

  $conexion = new COM("ADODB.Connection", null, $charPage);

  $conexion->ConnectionTimeout = 1200;

  $conexion->CommandTimeout = 2400;

  $conexion->Open($stringDeConexion);

}

catch (Exception $e) {

  echo "Error creando conexion OLEDB.<br/><br/>". $e->getMessage();

  exit(1);

} 

# intenta crear un comando

try {

  $comando = new COM("ADODB.Command");

  $comando->CommandType = 1; //adCmdText

  $comando->ActiveConnection = $conexion;

  $comando->CommandText = $consulta;

}

catch (Exception $e) {

  echo "Error creando el comando OLEDB.<br/><br/>". $e->getMessage();

  exit(1);

} 

# intenta ejecutar el comando SQL

try {

  $rs = $comando->Execute($cantRegAfectados);

}

catch (Exception $e) {

  echo "Error ejecutando comando OLEDB.<br/><br/>". $e->getMessage();

  exit(1);

}

# pasa los datos al recordset y libera los recursos

$this->recordset = array();

$j=0;

if ($rs->State!=0) {

  while (!$rs->EOF) {

    for ($i=0; $i<$rs->Fields()->Count; $i++) {

      $this->recordset[$j][$rs[$i]->Name] = $rs[$i]->Value;

    }

    $rs->MoveNext();

    $j++;

  }

  $rs->Close();

}

$conexion->Close();

$rs = null;

$conexion = null;

echo "It's all right!";

return 0;



?>



PD: You will need hugedbf1.dbf and hugedbf2.dbf shared on \\server\data

and the user running apache service need permission from I/O there.
Also

you have to have installed the VFP OLEDB drivers.

------------------------------------------------------------------------
[2010-05-21 11:15:24] paj...@php.net

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.



------------------------------------------------------------------------
[2010-05-21 01:43:31] diegoturriaga at yahoo dot com dot ar

Description:
------------
I thought it might be a matter of server version so initially I started
a report here (http://www.apachelounge.com/viewtopic.php?p=15696) which
will be of help to avoid writing both.



Test script:
---------------
In the previous url I have posted some php code... You can use a
connection string like this for testing:



$cnStr = 'Provider=VFPOLEDB.1;Data
Source="\\server\data";Mode=ReadWrite|Share Deny
None;Password="";Collating Sequence=SPANISH;DELETED=False';



Other variables needed:



$charPage = CP_UTF8;

$consulta = "SELECT * FROM hugedbf1 x INNER JOIN hugedbf2 y ON
x.Id=y.xId"



And it's all... works fine for a few records but crash for many.



As I said in the other post, works fine with PHP 5.2

Expected result:
----------------
array results

Actual result:
--------------
php5ts.dll crash


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51877&edit=1

Reply via email to