0 if ok
*/
function run_sql($sqlfile,$silent=1)
{
global $db, $conf, $langs, $user;
dolibarr_syslog("Admin.lib::run_sql run sql file ".$sqlfile, LOG_DEBUG);
$ok=0;
$error=0;
$i=0;
$buffer = '';
$arraysql = Array();
// Get version of database
$versionarray=$db->getVersionArray();
$fp = fopen($sqlfile,"r");
if ($fp)
{
while (!feof ($fp))
{
$buf = fgets($fp, 4096);
// Cas special de lignes autorisees pour certaines versions uniquement
if (eregi('^-- V([0-9\.]+)',$buf,$reg))
{
$versioncommande=split('\.',$reg[1]);
//print var_dump($versioncommande);
//print var_dump($versionarray);
if (sizeof($versioncommande) && sizeof($versionarray)
&& versioncompare($versioncommande,$versionarray) <= 0)
{
// Version qualified, delete SQL comments
$buf=eregi_replace('^-- V([0-9\.]+)','',$buf);
//print "Ligne $i qualifi?e par version: ".$buf.'
';
}
}
// Ajout ligne si non commentaire
if (! eregi('^--',$buf)) $buffer .= $buf;
// print $buf.'
';
if (eregi(';',$buffer))
{
// Found new request
$arraysql[$i]=trim($buffer);
$i++;
$buffer='';
}
}
if ($buffer) $arraysql[$i]=trim($buffer);
fclose($fp);
}
// Loop on each request
foreach($arraysql as $i=>$sql)
{
if ($sql)
{
// Ajout trace sur requete (eventuellement ? commenter si beaucoup de requetes)
if (! $silent) print '