Cách lưu trữ mảng trong MySQL bằng PHP

Đoạn mã sau sẽ giúp tạo một hàm PHP để chèn dữ liệu mảng PHP vào MySQL.

if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
1 Chúng ta có mảng PHP sau

$records = array[
    "0" => array["Parvez", "PHP", "12"],
    "1" => array["Devid", "Java", "34"],
    "2" => array["Ajay", "Nodejs", "22"]
];

Tôi muốn chèn mảng PHP ở trên vào bảng cơ sở dữ liệu MySQL. Chúng tôi có hai tùy chọn để chèn một mảng PHP vào MySQL bằng PHP

Chúng tôi sẽ làm theo các bước dưới đây để chèn mảng dữ liệu vào MySQL –

  1. Sử dụng lệnh Chèn lặp lại trên mỗi hàng
  2. Sử dụng lệnh Chèn đơn bằng cách nối tất cả các giá trị mảng vào mảng

Ngoài ra, hãy xem các hướng dẫn truy vấn MySQL động khác,

  • Hợp nhất hai mảng hoặc nhiều mảng trong PHP
  • Cách chuyển đổi XML thành mảng liên kết trong PHP
  • Loại bỏ các bản sao khỏi mảng đa chiều
  • Cách chuyển đổi XSD thành mảng bằng PHP
  • Chèn mảng PHP vào bảng MySQL
  • Hợp nhất hai mảng hoặc nhiều mảng trong PHP

lựa chọn 1. PHP Chèn mảng vào MySQL bằng cách sử dụng lệnh chèn lặp lại

Ở đây chúng tôi sẽ lặp lại trên từng hàng dữ liệu và thực hiện các lệnh chèn riêng cho từng hàng

if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}

Tôi giả sử - Bạn đã tạo một bảng và kết nối với MySQL,

if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
2 là đối tượng kết nối, Bạn cần thay thế
if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
3 bằng tên bảng của bạn và
if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
4 bằng tên cột của bạn. Tôi chưa lấy bất kỳ
if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
5 nào trong một hàng, tôi cho rằng bạn có cột
if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
6 tự động tăng trong bảng của mình

Liên kết được Tài trợ

Lựa chọn 2. PHP Chèn mảng vào bảng cơ sở dữ liệu bằng lệnh Chèn đơn

Trong tùy chọn này, chúng tôi sẽ phân tích tất cả dữ liệu hàng và lưu trữ nó vào một mảng PHP, Bước tiếp theo là – chúng tôi sẽ ẩn tất cả dữ liệu hàng và chuẩn bị một lệnh SQL chèn để chèn tất cả dữ liệu mảng PHP vào bảng MySQL

if[is_array[$records]]{
    $DataArr = array[];
    foreach[$records as $row]{
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $DataArr[] = "['$fieldVal1', '$fieldVal2', '$fieldVal3']";
    }

    $sql = "INSERT INTO programming_lang [field1, field2, field3] values ";
    $sql .= implode[',', $DataArr];

    mysqli_query[$conn, $query]; 
}

PHP cũng cung cấp hàm

if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
7 để chèn một mảng PHP dưới dạng chuỗi vào MySQL. Bạn có thể lưu trữ tất cả mảng PHP vào bảng MySQL dưới dạng chuỗi bằng cách sử dụng
if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
7 và hoàn nguyên mảng php bằng cách sử dụng
if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
1

Sự kết luận

Trong bài đăng này, chúng ta đã học cách chèn Mảng PHP vào bảng cơ sở dữ liệu MySQL bằng PHP. Có hai tùy chọn để chèn một mảng PHP vào bảng MySQL. Chúng ta cũng có thể lưu trữ mảng PHP vào bảng MySQL bằng hàm php

if[is_array[$records]]{
    foreach [$records as $row] {
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $query ="INSERT INTO programming_lang [field1, field2, field3] VALUES [ '". $fieldVal1."','".$fieldVal2."','".$fieldVal3."' ]";
        mysqli_query[$conn, $query];
    }
}
7

Bài viết này khám phá cách lưu các mảng PHP trong MySQL. MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ nguồn mở cho phép bạn lưu trữ dữ liệu theo hàng và cột. SQL là viết tắt của Ngôn ngữ truy vấn có cấu trúc để thao tác và truy xuất dữ liệu từ cơ sở dữ liệu SQL. Biết thêm về MySQL

Mục lục

  • Trước khi bạn đọc
  • Lưu trữ mảng trong bảng chuẩn hóa
  • bảng nhân viên
  • Lưu trữ mảng PHP trong MySQL dưới dạng hàng mới bằng cách sử dụng hàm nổ với biến
  • Rủi ro bảo mật – SQL injection. Không sử dụng
  • Lưu trữ Mảng trong MySQL dưới dạng hàng mới bằng cách sử dụng vòng lặp foreach và câu lệnh được tham số hóa
  • Lưu Analytics & dữ liệu không chuẩn hóa
    • Sử dụng hàm json_encode để lưu trữ toàn bộ mảng PHP trong MySQL
    • Lưu ý về mã hóa json và lưu trữ toàn bộ mảng
    • Lưu mảng trong MySQL PHP bằng serialize
  • Gói [lại
  • Bạn muốn tìm hiểu thêm về PHP?
    • Bài viết liên quan

Trước khi bạn đọc

Bài viết yêu cầu bạn kết nối với cơ sở dữ liệu MySQL của bạn bằng PHP, tạo một bảng và kết nối với nó trong PHP. Nếu bạn không quen thuộc với tất cả những điều này, hãy xem xét việc học nó từ w3schools. Ở đây chúng ta chỉ tập trung vào các cách lưu trữ mảng khác nhau trong MySQL PHP

Lưu trữ mảng trong bảng chuẩn hóa

bảng nhân viên

Bạn cần tạo một bảng nhân viên ở cuối nếu bạn đang thử các ví dụ trong bài viết. Để thuận tiện cho bạn, đây là mã tạo bảng SQL dành cho bạn

CREATE TABLE EMPLOYEES_TABLE [
id INT[6] UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR[30] NOT NULL,
salary VARCHAR[30] NOT NULL
]

Lưu trữ mảng PHP trong MySQL dưới dạng hàng mới bằng cách sử dụng hàm nổ với biến

Có điều gì đó không ổn với cách tiếp cận bên dưới. Bạn có thể hình dung về nó?

Hàm implode PHP chuyển đổi một mảng thành một chuỗi. Các giá trị được phân tách bằng dấu phẩy từ hàm nổ đã sẵn sàng để sử dụng trong câu lệnh SQL INSERT INTO. Đây là một ví dụ về việc thêm một hàng vào bảng nhân viên bằng cách sử dụng câu lệnh INSERT

INSERT INTO EMPLOYEES_TABLE [name, salary] VALUES [‘Tom’, ‘60000’];

Mã bên dưới sử dụng hàm nổ và SQL INSERT để thêm nhiều hàng vào

if[is_array[$records]]{
    $DataArr = array[];
    foreach[$records as $row]{
        $fieldVal1 = mysqli_real_escape_string[$conn, $row[0]];
        $fieldVal2 = mysqli_real_escape_string[$conn, $row[1]];
        $fieldVal3 = mysqli_real_escape_string[$conn, $row[2]];

        $DataArr[] = "['$fieldVal1', '$fieldVal2', '$fieldVal3']";
    }

    $sql = "INSERT INTO programming_lang [field1, field2, field3] values ";
    $sql .= implode[',', $DataArr];

    mysqli_query[$conn, $query]; 
}
0

Chủ Đề