note 41945 added to function.mysql-query
| From: | aurelian dot nospam_please at scarlat dot ro | 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