클래식 "IF() {DO {} WHILE}"구문 :
if(mysqli_multi_query($mysqli,implode(';',$queries))){
do{
echo "<br><br>",key($queries),": ",current($queries); // display key:value @ pointer
if($result=mysqli_store_result($mysqli)){ // if a result set
while($rows=mysqli_fetch_assoc($result)){
echo "<br>Col = {$rows["Col"]}";
}
mysqli_free_result($result);
}
echo "<br>Rows = ",mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs
} while(next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
}
if($mysqli_error=mysqli_error($mysqli)){
echo "<br><br>",key($queries),": ",current($queries),"Syntax Error:<br>$mysqli_error"; // display array pointer key:value
}
//if you want to use the snippet again...
$mysqli_error=null; // clear variables
reset($queries); // reset pointer
새롭게 탄생 한 휠 "WHILE {}"구문들에 대한 (... 할 사람 없습니다 시험 후 같은 루프) :
while((isset($multi_query) && (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli))) || (!isset($multi_query) && $multi_query=mysqli_multi_query($mysqli,implode(';',$queries)))){
echo "<br><br>",key($queries),": ",current($queries); // display array pointer key:value
if($result=mysqli_store_result($mysqli)){
while($rows=mysqli_fetch_assoc($result)){
echo "<br>Col = {$rows["Col"]}";
}
mysqli_free_result($result);
}
echo "<br>Rows = ",mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs
}
if($mysqli_error=mysqli_error($mysqli)){
echo "<br><br>",key($queries),": ",current($queries),"Syntax Error:<br>$mysqli_error"; // display array pointer key:value
}
//if you want to use the snippet again...
$multi_query=$mysqli_error=null; // clear variables
reset($queries); // reset pointer
그래서, 중 동일한 출력을 제공합니다 다음 쿼리 주어진 니펫을 :
쿼리 배열 :
$queries[]="SELECT * FROM `TEST`";
$queries[]="INSERT INTO `TEST` (Col) VALUES ('string1'),('string2')";
$queries[]="SELECT * FROM `TEST`";
$queries[]="DELETE FROM `TEST` WHERE Col LIKE 'string%'";
출력 :
0: SELECT * FROM `TEST`
Rows = 0
1: INSERT INTO `TEST` (Col) VALUES ('string1'),('string2')
Rows = 2
2: SELECT * FROM `TEST`
Col = string1
Col = string2
Rows = 2
3: DELETE FROM `TEST` WHERE Col LIKE 'string%'
Rows = 2
사용자의 요구에 따라 내 조각을 수정합니다. 버그를 발견하면 의견을 남기십시오.
"나는 추가 및 제거 시도했다"당신은 또한 hhmmmm ...에 노력했다. idunno가 mysqli :: more_results()에 대한 검사를 추가 했습니까? – PeeHaa
이것은 거의 쓸모없는 경고입니다. 기본적으로 그것은 당신에게 더러운 코드를 작성하도록 요청합니다. 이 경고의 배경은 무엇입니까? – Calmarius