两个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中的两个表。有更好的方法吗?
2 回答
慕森卡
TA贡献1806条经验 获得超8个赞
一劳永逸!使用此函数可以获得脚本中任意位置的无限数量查询的结果。
职能:
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);输出量
if(isset($output['error'][2]) && $output['error'][2] !== ""){
echo $output['error'][2];}else{
while($row = $output['result'][2]->fetch_assoc()) {
print_r($row);
}}- 2 回答
- 0 关注
- 399 浏览
添加回答
举报
0/150
提交
取消
