<?php
// copie d'un fichier
dbf_copie("espaces.dbf" ,"espaces");
// Fonction de copie
function dbf_copie($fichier_dbase, $table_mysql)
{
global $DBHost, $DBUser, $DBPass, $base,$login, $pwd;
// Connexion à DBASE
$db = dbase_open($fichier_dbase, 2);
$num_records = dbase_numrecords($db);
$numfields = dbase_numfields($db);
// Connexion à MYSQL
connect();
$connexion = mysql_connect($DBHost, $login, $pwd);
$dby = mysql_select_db($base, $connexion);
// Récupération des champs de la table mysql
$tableaumaj = stru_sql($table_mysql);
// Parcours de la table dbase
for ($index = 1; $index <= $num_records; $index++)
{
$record = dbase_get_record($db, $index);
// Création chaîne requete
$chaine = ""; // chaîne d'insertion
$chainemaj = ""; // chaîne de mise à jour
$requeteins = "";
$requetemaj = "";
for ($index2 = 0; $index2 < $numfields; $index2++)
{
$chaine .= "'$record[$index2]'" ;
$chainemaj .= $tableaumaj[$index2] . "='$record[$index2]'";
if ($index2 < $numfields-1) $chaine .= ",";
if ($index2 < $numfields-1) $chainemaj .= ",";
}
// Affectation des chaînes avec les requêtes
// Note: on concatène avec le <POINT>. = "chaine1".$var2.chaine3"
$requeteins = "insert into $table_mysql values (" . $chaine . ")";
$requetemaj = "update $table_mysql set " . $chainemaj;
$requetemaj .= " where clef = '$record[0]'";
$resultat_sql = mysql_query($requetemaj, $connexion);
print("changée=" . mysql_affected_rows($connexion) . "<br>");
// si erreur d'update, on insère
if (mysql_affected_rows($connexion) == 0)
{
$resultat_sql_ins = mysql_query($requeteins, $connexion);
print("<br>erreur=" . mysql_errno(). "<br>");
}
} //for
dbase_close($db);
mysql_close($connexion);
}
// Paramètres de connexion au site
function connect()
{
global $DBHost, $DBUser, $DBPass, $base, $login, $pwd;
$DBHost = "sql.nomdusite.com";
$base = "nom_base";
$login = "mon_login";
$pwd = "mon_pwd";
}
// Fonction de récupération des champs de la table mysql
// (utilisée dans la fonction de copie)
function stru_sql($table_mysql)
{
global $DBHost, $DBUser, $DBPass, $base, $login, $pwd;
// connexion MySQL
connect();
$connexion = mysql_connect($DBHost,$login, $pwd);
$dby = mysql_select_db($base, $connexion);
$result = mysql_query("SELECT * FROM $table_mysql");
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
$i = 0;
$table = mysql_field_table($result, $i);
while ($i < $fields)
{
$name = mysql_field_name($result, $i);
$champs[] = "$name";
$i++;
}
return $champs;
}
?>
|
|