note 41945 added to function.mysql-query

From: Date: Tue, 27 Apr 2004 11:04:05 +0000
Subject: note 41945 added to function.mysql-query
Groups: php.notes 
Request: Send a blank email to php-notes+get-68864@lists.php.net to get a copy of this message
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"; ---- Manual Page -- http://www.php.net/manual/en/function.mysql-query.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+41945 Delete -- http://master.php.net/manage/user-notes.php?action=delete+41945&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+41945&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#68864) next »