note 41945 deleted from function.mysql-query by philip

From: Date: Wed, 06 Apr 2005 18:02:37 +0000
Subject: note 41945 deleted from function.mysql-query by philip
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-87602@lists.php.net to get a copy of this message
Note Submitter: aurelian dot nospam_please at scarlat dot ro ---- Here is a simple code to execute multiple queries... function query_parser($q){ // strip the comments from the query while($n=strpos($q,'--')){ $k=@strpos($q,"\n",$n+1); if(!$k) $k=strlen($q); $q=substr($q,0,$n).substr($q,$k+1); } $n=strlen($q); $k=0; $queries=array(); $current_delimiter=''; for($i=0;$i<$n;$i++){ // if this slash escapes something, // current delimiter must not be affected if($q[$i]=='\\' && ($q[$i+1]=='\\' || $q[$i+1]=="'" || $q[$i+1]=='"') ){ $queries[$k].=$q[$i].$q[$i+1]; $i++; } else{ if($q[$i]==$current_delimiter) $current_delimiter=''; elseif($q[$i]=='`' || $q[$i]=="'" || $q[$i]=='"') $current_delimiter=$q[$i]; if($q[$i]==';' && $current_delimiter==''){ $queries[$k]=trim($queries[$k]); if(trim(substr($q,$i),"\r \n;")!='') $k++; } else $queries[$k].=$q[$i]; } } return $queries; } function multiple_query($q){ $queries=query_parser($q); $n=count($queries); $results=array(); for($i=0;$i<$n;$i++) $results[$i]=array( mysql_query($queries[$i]), mysql_errno(), mysql_error() ); return $results; } /* You can use it like this */ $queries=multiple_query('queries separated by ;'); for($i=0;$i<count($queries);$i++) if($queries[$i][1]==0){ /* some code.... with the result in $queries[$i][0] */ } else echo "Error: ".$queries[$i][2]."<br>\n";

« previous php.notes (#87602) next »