<?
// ------------------------------------------------------------------------- //
// Exécuter un fichier de requêtes SQL pour mettre à jour une base //
// ------------------------------------------------------------------------- //
// Auteur: Perrich //
// Email: perrich@netsolution.fr //
// Web: http://www.frshop.net/ //
// ------------------------------------------------------------------------- //
$con = mysql_connect( 'localhost', $dbUser, $dbPass );
mysql_select_db( $dbDestination, $con );
$sql_file = "monfichier.sql"; // a redefinir
set_time_limit(0);
function split_sql($sql) {
$sql = trim($sql);
$sql = ereg_replace("\n#[^\n]*\n", "", $sql);
$buffer = array();
$ret = array();
$in_string = false;
for( $i = 0; $i < strlen( $sql ) - 1; $i++) {
if ( $in_string ) {
if ( ( $sql[$i] == $in_string ) && ( $buffer[1] != "\\" ) )
$in_string = false;
} else {
if ( $sql[$i] == ";" ) {
$ret[] = substr( $sql, 0, $i );
$sql = substr( $sql, $i + 1 );
$i = 0;
}
if ( ( $sql[$i] == "\"" || $sql[$i] == "'" ) &&
( !isset($buffer[1] ) || $buffer[1] != "\\" ) ) $in_string = $sql[$i];
}
$buffer[1] = $sql[$i]; // caractère precédent
}
if ( !empty( $sql ) ) $ret[] = $sql;
return($ret);
}
if ( isset( $sql_file ) ) {
echo "Insertion des données dans la base de données ... ";
$sql_query = fread( fopen( $sql_file, "r" ), filesize( $sql_file ));
$pieces = split_sql( $sql_query );
for ( $i = 0; $i < count( $pieces ); $i++ ) {
$pieces[$i] = trim( $pieces[$i] );
if ( !empty( $pieces[$i] ) && $pieces[$i] != "#" )
$result = mysql_query( $pieces[$i], $con )
or die( 'erreur ligne '.($i+1).' &nsbp; '.$pieces[$i].'<br>' );
}
echo "<b>OK</b><br> <br>";
}
?>