FAQ
Algo que nunca habia visto...

Un segmentation fault en PHP.

En fin, el problema es el siguiente:

Tengo una base de datos MS SQL 7.0 (obviamente en un servidor Windows NT)
Necesito pasar toda esa base de datos cada 20 minutos a otra base de datos
MySQL (se que no está bien duplicar bases de datos, pero asi me lo pidieron)
Uso PHP compilado con CGI y con funciones de Sybase (mediante FreeTDS) y
MySQL..

Tengo un programa que saca todas las tablas que tiene la base de datos
(phones) y las crea en MySQL (en realidad crea un archivo similar al que
crea un mysqldump), este programa funciona perfecto..

Pero tengo otro programa, que saca todos los datos de todas las tablas de la
base de datos, y éste es el que truena... curiosamente... siempre es en el
mismo lugar (primera tabla, row 182 de 186). Otra cosa, si quito un echo...
luego luego hace segmentation fault sin imprimir ni hacer nada, lo que estoy
sospechando es que està mal de algun modo el modo de compilar php (use
--with-sybase=/usr/local/freetds --with-mysql nada mas)...

¿Alguno de ustedes tiene idea de por qué está pasando ésto?

Pego el código...

#!/usr/local/bin/php -q
<?php
set_time_limit(0);
sybase_connect("MyServer70","aladin","aladan");
sybase_select_db("PHONE") or die("No se pudo");

function formatea($string) {
$div = strlen($string)/2;
$string = substr($string,0,$div);
return $string;
};

$fs = sybase_query("exec sp_tables NULL, dbo, phone, \"'TABLE'\"");
if ($fs) {


$frs = array();
while (list($db,$owner,$name,$type,$tumam) = sybase_fetch_row($fs)) {
$name = formatea("$name");
$ls = sybase_query("exec sp_columns $name");
if ($ls) {
$i = 0;
$select="";
while
(list($tdb,$towner,$tname,$colname,$dtype,$type_name,$precision,$length,$scale,$radix,$nullable,$remarks,$column_def,$sql_
data_type,$sql_datetime_sub,$char_octet_length,$original_position,$is_nullable,$ss_data_type)
= sybase_fetch_row($ls)) {
$select.=formatea("$colname");
$i++;
if ($i <= sybase_num_rows($ls)-1) $select.=",";
}
}
$atl = sybase_query("SELECT $select from $name");
if ($atl) {
if (sybase_num_rows($atl)) {
$a = 0;
while ($ftl = sybase_fetch_row($atl)) {
$a++;
$values="";
for ($e=0; $e<count($ftl); $e++) {
$values .= $ftl[$e];
if ($e <= count($ftl)-1) $values.=",";
}
echo "$a de ".sybase_num_rows($atl)."\n";
echo "INSERT into $name values ($values)\n";
}
$a=0;
}
}
}

_________________________________________________________________
Hable con sus amigos en línea, pruebe MSN Messenger: http://messenger.msn.es

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedFeb 14, '02 at 6:40p
activeFeb 14, '02 at 6:40p
posts1
users1
websitephp.net

1 user in discussion

Roberto Villarreal: 1 post

People

Translate

site design / logo © 2022 Grokbase