两个mysqli查询

两个mysqli查询

有可能有像这样的两个mysqli_查询吗?

mysqli_query($dblink, "INSERT INTO images (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName')") or die(mysql_error());
                          mysqli_query($dblink, "INSERT INTO images_history (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name, day, month, year) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName', '$day', '$month', '$year')") or die(mysql_error());

基本上,我想更新DB中的两个表。有更好的方法吗?


蝴蝶不菲
浏览 392回答 2
2回答

慕的地8271018

一劳永逸!使用此函数可以获得脚本中任意位置的无限数量查询的结果。职能:您只需将多个查询的输出传递给函数,它就会返回在每个查询中找到的所有结果和错误。  function loop_multi($result){     //use the global variable $conn in this function     global $conn;     //an array to store results and return at the end     $returned = array("result"=>array(),"error"=>array());     //if first query doesn't return errors       if ($result){         //store results of first query in the $returned array         $returned["result"][0] = mysqli_store_result($conn);         //set a variable to loop and assign following results to the $returned array properly         $count = 0;         // start doing and keep trying until the while condition below is not met         do {             //increase the loop count by one             $count++;             //go to the next result             mysqli_next_result($conn);             //get mysqli stored result for this query             $result = mysqli_store_result($conn);             //if this query in the loop doesn't return errors             if($result){               //store results of this query in the $returned array               $returned["result"][$count] = $result;             //if this query in the loop returns errors             }else{               //store errors of this query in the $returned array               $returned["error"][$count] = mysqli_error($conn);             }         }         // stop if this is false         while (mysqli_more_results($conn));       }else{         //if first query returns errors         $returned["error"][0] = mysqli_error($conn);       }     //return the $returned array     return $returned;   }用法:$query  = "INSERT INTO table1 (attribute1) VALUES ('value1');";$query .= "INSERT INTO table2 (attribute2) VALUES ('value2');";$query .= "SELECT * FROM table3;";//execute query$result = mysqli_multi_query($conn, $query);//pass $result to the loop_multi function$output = loop_multi($result);输出量$Output包括由查询排序的两个数组“结果”和“错误”。例如,如果您需要检查在执行第三个查询并获取其结果时是否发生了任何错误,您可以这样做:if(isset($output['error'][2]) && $output['error'][2] !== ""){   echo $output['error'][2];}else{   while($row = $output['result'][2]->fetch_assoc()) {     print_r($row);   }}
打开App,查看更多内容
随时随地看视频慕课网APP