Tuesday, March 3, 2009

Run a .SQL file from PHP

Execute a .SQL file from PHP code

// executes the SQL commands from an external file.

$file = "sqlQueryfile.sql";
//Check if file exists
if (!file_exists($file))
die("Error : "The file $file does not exist.");

$str = file_get_contents($file);
if (!$str)
die("Error : Unable to read the contents of $file.");

$this->last_query = $str;

// split all the query's into an array
$sql = explode(';', $str);
foreach ($sql as $query)
if (!empty($query))
$r = mysql_query($query);
if (!$r)
die("Error : "mysql_error());


PHP Extract / Unzip a Zip file by code

I came across a task where i had to unzip a zip folder on a server to a new directory path in PHP

For the code to work we need the PCLZip library.The PclLib is a free open source.

You can download the library from the PCLZip site

Steps for UnZip of files

//make a directory
// $target is the directory where you want to unzip the files
//$zipfile is the zipped file which has to be unzipped
$path = $target;
$file = $zipfile;
// Use the library
$archive = new PclZip($file);
if (($v_result_list = $archive->extract(PCLZIP_OPT_PATH, $path)) == 0)
die("Error : ".$archive->errorInfo(true));


PCLZip also supports error detection

Built in error function are
errorName() : Returns a string containing the name of the error.
errorCode() : Returns the error code value.
errorInfo() : Returns a description associated with the error.

Using the Traceable Library we can also trace our errors.
You can download the trace library seperately.



$zip = new PclZip('test.zip');
$list = $zip->create("readme.txt");
if ($list == 0) {
die("Error : ".$zip->errorInfo(true));