sách gpt4 ăn đã đi

Gia tăng giới hạn nguyên tử trong PHP/MySQL

In lại Tác giả: Walker 123 Thời gian cập nhật: 29-11-2023 09:49:11 26 4
mua khóa gpt4 giày nike

Tôi có 2 bảng:

t1:

+----+-------+------+
| id | n_data | loại |
+----+-------+------+
| 1 | 10 | 1 |
+----+-------+------+

t2:

+-----+------+
| loại | tối đa |
+------+-----+
| 1 | 50 |
+------+-----+

Điều tôi muốn làm là: khi người dùng chọnt1khi một phần tử của , chẳng hạn nhưsố hiệu = 1, tôi thêm tương ứngn_dữ liệu tăng thêm 1 trừ khi đạt được t2 giá trị tương ứng trong tối đa(sử dụng tham gia t1.type = t2.type). Trong trường hợp này tôi sẽ cảnh báo người dùng.

Tôi có:

$result = $conn->query("CHỌN t1.n_data, t2.max 
TỪ t1, t2
NƠI t1.type = t2.type VÀ t1.id = " . $id);
$row = $result->fetch_assoc();
nếu ($row["n_data"] < $row["max"]) {
$conn->query("CẬP NHẬT t1
ĐẶT n_data = n_data + 1
NƠI id = " . $id);
}
khác {
echo "Chúng ta đã đạt đến mức tối đa!";
}

Rõ ràng, tôi có một điều kiện chạy đua ở đây. Những người khác có thể thêm vào giữa hai hướng dẫn MySQL n_dữ liệu

Làm cách nào tôi có thể kết hợp hai truy vấn thành một hoặc biến chúng thành nguyên tử?

câu trả lời hay nhất

Tôi nghĩ tôi sẽ sử dụng mệnh đề Where tối đa Cập nhật bảng:

cập nhật t1
đặt n_data=n_data+1
Ở đâu
id = :id và
n_dữ_liệu < :tối_đa;

Sau đó bạn có thể kiểm tra các hàng bị ảnh hưởng. Nếu là 0, điều đó có nghĩa là đã đạt đến giá trị tối đa và quá trình cập nhật không thành công.

Nhưng tất nhiên, tốt nhất là không nên tối đa Được truyền dưới dạng tham số nhưng được truy vấn nội tuyến:

cập nhật t1
đặt n_data=n_data+1
Ở đâu
id = :id và
n_data < (chọn max từ t2 trong đó t2.type=t1.type);

Toàn bộ mã PHP sẽ rất đơn giản. Chỉ cần chạy bản cập nhật này và kiểm tra các hàng bị ảnh hưởng == 0 và lặp lại thông báo lỗi trong trường hợp đó. Một cái gì đó như thế này:

$stmt = $conn->chuẩn bị("
cập nhật t1
đặt n_data=n_data+1
Ở đâu
id = ? và
n_data < (chọn max từ t2 trong đó t2.type=t1.type)");
$stmt->bind_param("tôi", $id);
$stmt->execute([$id]);

nếu ($stmt->num_rows === 0) {
echo "Chúng ta đã đạt đến mức tối đa!";
}

Về php - Gia tăng giới hạn nguyên tử trong PHP/MySQL, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/55123168/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress