--- fenglin/bbs/ex_dir_service.php 2025/04/08 09:29:17 1.1 +++ fenglin/bbs/ex_dir_service.php 2025/04/16 01:51:52 1.3 @@ -95,7 +95,7 @@ if ($current_dir != "") // Not root { - $sql = "SELECT FID, name FROM ex_dir WHERE dir = '$current_dir' AND enable"; + $sql = "SELECT FID, name FROM ex_dir WHERE dir = '$current_dir' AND enable FOR SHARE"; $rs = mysqli_query($db_conn, $sql); if ($rs == false) @@ -133,6 +133,8 @@ // Operation of ex_dir switch($dir_op) { + case 0: // List + break; case 1: // Create if ($dir == "" || $dir_name == "") { @@ -146,7 +148,7 @@ exit(json_encode($result_set)); } - $sql = "SELECT FID FROM ex_dir WHERE SID = $sid AND dir = '$current_dir$dir/'"; + $sql = "SELECT FID FROM ex_dir WHERE SID = $sid AND dir = '$current_dir$dir/' FOR UPDATE"; $rs = mysqli_query($db_conn, $sql); if ($rs == false) @@ -229,7 +231,7 @@ $parent_dir = substr($current_dir, 0, strrpos("/" . $current_dir, "/", -2)); $current_dir_len = strlen($current_dir); - $sql = "SELECT FID, dir FROM ex_dir WHERE SID = $sid AND dir LIKE '$current_dir%'"; + $sql = "SELECT FID, dir FROM ex_dir WHERE SID = $sid AND dir LIKE '$current_dir%' FOR UPDATE"; $rs = mysqli_query($db_conn, $sql); if ($rs == false) @@ -301,7 +303,7 @@ exit(json_encode($result_set)); } - $sql = "SELECT FID FROM ex_dir WHERE SID = $sid AND dir LIKE '$current_dir%'"; + $sql = "SELECT FID FROM ex_dir WHERE SID = $sid AND dir LIKE '$current_dir%' FOR UPDATE"; $rs = mysqli_query($db_conn, $sql); if ($rs == false) @@ -382,17 +384,6 @@ if ($rs == false) { $result_set["return"]["code"] = -2; - $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn); - - mysqli_close($db_conn); - exit(json_encode($result_set)); - } - - // No longer require explicit transaction - $rs = mysqli_query($db_conn, "SET autocommit=1"); - if ($rs == false) - { - $result_set["return"]["code"] = -2; $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn); mysqli_close($db_conn);