Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

Tôi muốn kiểm tra xem một cuốn sách có tồn tại trong cơ sở dữ liệu hay không trước khi tôi chèn cùng một cuốn sách để tránh trùng lặp

public function actionCreate($book_id = 'book_id')
{
    $checkmodel = Books::find()->where(['book_id' => $book_id])->one();

    if ($checkmodel) {
        Yii::$app->session->setFlash('error', 'The book has been borrowed, Please look for another one.');

        return $this->redirect(Yii::$app->request->referrer);
    }

    $model = new Books();
    
    if ($model->load(Yii::$app->request->post()) && $checkmodel->save()) {
        Yii::$app->session->setFlash('Success','You have successfully borrowed the book');
        return $this->redirect(['view' => 'book_id', $checkmodel->book_id]);

    }

    return $this->render('create', [
        'model' => $model,
    ]);
}

Để kiểm tra xem một hàng có tồn tại trong bảng MySQL hay không, hãy sử dụng điều kiện tồn tại. Điều kiện tồn tại có thể được sử dụng với truy vấn con. Nó trả về true khi hàng tồn tại trong bảng, nếu không thì trả về false. Đúng được biểu thị ở dạng 1 và sai được biểu thị bằng 0

Để hiểu rõ hơn, trước tiên chúng ta sẽ tạo một bảng với sự trợ giúp của lệnh CREATE. Sau đây là truy vấn để tạo một bảng -

mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)

Sau khi tạo bảng thành công, chúng ta sẽ chèn một số bản ghi với sự trợ giúp của lệnh INSERT. Truy vấn để chèn bản ghi vào bảng -

mysql> INSERT into ExistsRowDemo values(100,'John');
Query OK, 1 row affected (0.16 sec)

mysql> INSERT into ExistsRowDemo values(101,'Bob');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into ExistsRowDemo values(103,'Carol');
Query OK, 1 row affected (0.20 sec)

mysql> INSERT into ExistsRowDemo values(104,'David');
Query OK, 1 row affected (0.13 sec)

Sau khi chèn tất cả các bản ghi, chúng ta có thể hiển thị chúng với sự trợ giúp của lệnh SELECT như sau:

mysql> SELECT * from ExistsRowDemo;

Sau đây là đầu ra -

+---------+-------+
| ExistId | Name  |
+---------+-------+
| 100     | John  |
| 101     | Bob   |
| 103     | Carol |
| 104     | David |
+---------+-------+
4 rows in set (0.00 sec)

Chúng tôi đã thêm một số bản ghi vào bảng. Cú pháp để kiểm tra xem một hàng có tồn tại trong bảng hay không với sự trợ giúp của điều kiện EXISTS như sau:

SELECT EXISTS(SELECT * FROM yourTableName WHERE yourCondition);

Tôi đang áp dụng truy vấn trên để nhận được kết quả -

Note: Firstly, I am considering the condition when row exists in the table. After that, the
condition will be mentioned when a row does not exist.

Trường hợp 1

Trong trường hợp này, tôi đưa ra một điều kiện khi hàng tồn tại. Hãy để chúng tôi áp dụng cú pháp trên để kiểm tra xem hàng có tồn tại hay không

mysql> SELECT EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=104);

Sau đây là đầu ra -

________số 8

Từ đầu ra mẫu ở trên, rõ ràng là hàng tồn tại, vì giá trị chúng tôi nhận được là 1. Điều này có nghĩa là ĐÚNG

vì vậy vấn đề mới nhất của tôi. Tôi có một nút lưu và nút lưu đó đã chèn vào truy vấn và hiện đang hoạt động tốt, điều tôi muốn làm là khi người dùng nhấp vào nút lưu, điều đầu tiên nó làm là kiểm tra xem bản ghi của người dùng đó đã tồn tại chưa và nếu . nhưng trước khi cập nhật, tôi muốn có một thông báo xác nhận hỏi người dùng xem họ có muốn cập nhật không vì đã có một bản ghi. và nếu không có bản ghi thì nó sẽ chỉ chèn. Tôi đã googled những thứ như "kiểm tra xem bản ghi có tồn tại trong mysql db" và "Chuyển hướng đến trang khác trên hộp cảnh báo xác nhận" và nhận được mã hóa (chỉ cần hai lần để làm cho nó hoạt động với tôi) nhưng để kết hợp toàn bộ điều tôi rất

những gì tôi có cho đến nay

lưu bản ghi. php

alert("Make sure you fill in your liability sheet!")
            window.location="asset.php"');
        }
    }
    else
    {
        echo ('

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

pritaeas 2.130 ¯\_(ツ)_/¯ Người điều hành Featured Poster

9 năm trước

Trên thực tế, bạn có thể làm điều này trong một truy vấn duy nhất

mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)
6

Ở trên hoạt động nếu có một khóa chính có thể nhận dạng

2 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

nadiam 0 Đăng bài chuyên nghiệp trong đào tạo

9 năm trước

tôi đang thử code của php koder nhưng tôi gặp lỗi này

Lưu ý. biến không xác định. phép trong C. \xampp\htdocs\CashFlow\sheets. php trên dòng 38

mật mã

mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)
7

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

pritaeas 2.130 ¯\_(ツ)_/¯ Người điều hành Featured Poster

9 năm trước

Nếu vòng lặp

mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)
06 bị bỏ qua vì không có bản ghi, thì
mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)
07 không có giá trị

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

phpkoder 0 Áp phích dành cho người mới

9 năm trước

viết dòng này, trước vòng lặp while.
$permission;
và nếu nó lại trả về lỗi; .
$permission = false;

0 0

Chia sẻ

Đã chỉnh sửa 9 năm trước bởi phpkoder vì. để biết thêm mô tả

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

nadiam 0 Đăng bài chuyên nghiệp trong đào tạo

9 năm trước

$permission=false không báo lỗi cho tôi nhưng nó đi thẳng vào mã này và không có gì trong bảng cơ sở dữ liệu. ]

mysql> INSERT into ExistsRowDemo values(100,'John');
Query OK, 1 row affected (0.16 sec)

mysql> INSERT into ExistsRowDemo values(101,'Bob');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into ExistsRowDemo values(103,'Carol');
Query OK, 1 row affected (0.20 sec)

mysql> INSERT into ExistsRowDemo values(104,'David');
Query OK, 1 row affected (0.13 sec)
0

$permission mang lại cho tôi cùng một lỗi không xác định. nhưng cũng đi đến mã hóa ở trên

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

diafol

9 năm trước

Bạn đang sử dụng vòng lặp while vì có nhiều bản ghi? . Nếu không, thì bạn không cần một vòng lặp. Chỉ là một quan sát

Thêm một

mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)
10 vào truy vấn của bạn

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

nadiam 0 Đăng bài chuyên nghiệp trong đào tạo

9 năm trước

tôi đã làm điều này

mysql> INSERT into ExistsRowDemo values(100,'John');
Query OK, 1 row affected (0.16 sec)

mysql> INSERT into ExistsRowDemo values(101,'Bob');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into ExistsRowDemo values(103,'Carol');
Query OK, 1 row affected (0.20 sec)

mysql> INSERT into ExistsRowDemo values(104,'David');
Query OK, 1 row affected (0.13 sec)
2

nhưng chỉ khi ($check) chạy nhưng bảng cơ sở dữ liệu trống

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

diafol

9 năm trước

thay vì

mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)
11 kiểm tra số hàng.
mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)
12

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

nadiam 0 Đăng bài chuyên nghiệp trong đào tạo

9 năm trước

nó không hoạt động. là mã mà tôi đã làm sai?

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

diafol

9 năm trước

Nói "nó không hoạt động" không giúp được gì cả. Bạn có thể cung cấp thêm thông tin. Tôi không biết mã hiện tại của bạn trông như thế nào. Bây giờ hãy thử sử dụng tiếng vang thay vì những cảnh báo khủng khiếp đó và đặt chúng tại các điểm chiến lược

Dù sao, để chèn và cập nhật, một lần nữa, đừng sử dụng thứ gì đó như

mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)
13, bạn sẽ muốn sử dụng
mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)
14

Trên thực tế, pritaeas đã cung cấp cho bạn một giải pháp gọn gàng trong ví dụ về KHÓA TRÊN DUPLICATE. Tại sao bạn chưa thử điều đó?

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

nadiam 0 Đăng bài chuyên nghiệp trong đào tạo

9 năm trước

mã hiện tại vẫn giống như mã tôi đã đăng gần đây. thay đổi duy nhất tôi đã thực hiện là thay đổi bạn đề xuất. Tôi muốn có thể có xác nhận trước khi bản ghi có thể được cập nhật và tôi không chắc liệu tôi có thể làm điều đó với ON DUPLICATE KEY hay không. có lẽ tôi sẽ chỉ thay đổi cách trang của mình hoạt động để tôi có thể sử dụng
ON DUPLICATE KEY thay thế.

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

pritaeas 2.130 ¯\_(ツ)_/¯ Người điều hành Featured Poster

9 năm trước

Tôi muốn có thể có xác nhận trước khi bản ghi có thể được cập nhật và tôi không chắc liệu tôi có thể làm điều đó với ON DUPLICATE KEY hay không

Nếu bạn muốn xác nhận thì ON DUPLICATE không phải là điều bạn muốn

0 0

Chia sẻ

Làm cách nào để kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu trước khi chèn bằng php không?

diafol

9 năm trước

Ngoài việc chọn những thứ riêng biệt, tôi không thể nói liệu chúng có được đặt hay không (e. g. giá trị trường), đây là một vài thử nghiệm nhanh

Làm cách nào để kiểm tra xem một mục có tồn tại trong PHP không?

Hàm in_array() là một hàm có sẵn trong PHP dùng để kiểm tra xem một giá trị đã cho có tồn tại trong một mảng hay không. Nó trả về TRUE nếu tìm thấy giá trị đã cho trong mảng đã cho và FALSE nếu không.

Làm cách nào để kiểm tra xem bản ghi có tồn tại trước khi chèn vào SQL không?

câu hỏi .
--Chèn
NẾU KHÔNG TỒN TẠI
LỰA CHỌN *
TỪ Probale
WHERE Prdno=10000001 và (PID là null hoặc PID=1)
Bắt đầu

Làm cách nào để kiểm tra xem một hàng có tồn tại trong PHP không?

PDO PDO kiểm tra xem hàng có tồn tại hoặc được tìm thấy hay không .
nếu ($select->rowCount() > 0) {
// Hàng đã được tìm thấy
//Làm
} khác {
//Không tìm thấy hàng nào
//Làm

Làm cách nào để kiểm tra dữ liệu từ cơ sở dữ liệu trong PHP?

Có hai cách để kết nối với cơ sở dữ liệu bằng PHP. .
Hướng đối tượng MySQLi $conn->query($query);
MySQLi Thủ tục mysqli_query($conn, $query)
PDO. $stmt = $conn->prepare($query);