Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos, estou precisando de ajuda para interpretar um script que converte de dbf para mysql:
no meu caso ele está gerando somente o cabecalho e dá o erro nesta fução: if (!function_exists('dbase_open'))
{
die("DBF support (--enable-dbase) is not enabled");
}
ele retorna : DBF support (--enable-dbase) is not enabled
para executar o script, deve entrar no prompt e digitar:
php dbf2sql.php <dbfile> <tablename> > output.sql
encontra disponivel em: http://www.pablo.blog.br/63
dbf2sql.php
<?
if (count($argv) != 3)
{
echo "#####################################################\n";
echo "# dbf2sql : Converts DBF files to SQL instructions #\n";
echo "# sintax: #\n";
echo "# php dbf2sql <dbfile> <tablename> > output.sql #\n";
echo "# #\n";
echo "# author : Pablo Dall'Oglio <pablo at php.net> #\n";
echo "#####################################################\n";
die;
}
if (!function_exists('dbase_open')) die("DBF support (--enable-dbase) is not enabled");
}
dbf2sql($argv[1], $argv[2]);
/* function dbf2sql
* Converts a DBF file into SQL instructions
* @dbffile = DBF file name
* @tablename = Target table name
*/
function dbf2sql($dbffile, $tablename)
{
# Opens Dbase and SQLite files
$dbf = @dbase_open($dbffile, 0);
$pg_types['memo'] = 'text';
$pg_types['character'] = 'varchar';
$pg_types['number'] = 'float';
$pg_types['date'] = 'date';
if ($dbf)
{
# Get Number or records and columns info
$num_records = dbase_numrecords($dbf);
$columns = dbase_get_header_info($dbf);
# Create the SQLite table
$sql = "create table $tablename (";
foreach ($columns as $column)
{
$name = $column['name'];
$type = $pg_types[$column['type']];
$len = $column['length'];
if ($type == 'character')
{
$type.="($len)";
}
$sql .= "$name $type,";
}
$sql = substr($sql,0,-1) . ')';
echo "$sql;\n";
# Loop the Dbase records
for($index=1; $index <= $num_records; $index ++)
{
# Get one record
$record = dbase_get_record($dbf, $index); // get the actual record
# Ignore deleted fields
if ($record["deleted"] != "1")
{
# Insert the record
$query = "insert into $tablename values(";
foreach ($record as $key=>$field)
{
if ($key!=='deleted')
{
$field = str_replace("'", "\'", $field);
$field = trim($field);
$query .= "'$field',";
}
}
$query = substr($query,0,-1) . ')';
echo "$query;\n";
}
}
}
else
{
die("Cannot open DBF file");
}
return true;
}
?>Carregando comentários...