Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chèn một mảng php đa chiều vào cơ sở dữ liệu mysql

Đoạn mã sau sẽ hoạt động, nhưng nó giả định rằng độ dài của tất cả các mảng lồng nhau là như nhau, hay nói cách khác là mỗi mảng lồng nhau chứa các giá trị cho tất cả các thuộc tính được xác định trong mảng lồng nhau đầu tiên.

$array = array(
    array('name', 'age', 'gender' ),
    array('Ian', 24, 'male'),
    array('Janice', 21, 'female')
);

$fields = implode(', ', array_shift($array));

$values = array();
foreach ($array as $rowValues) {
    foreach ($rowValues as $key => $rowValue) {
         $rowValues[$key] = mysql_real_escape_string($rowValues[$key]);
    }

    $values[] = "(" . implode(', ', $rowValues) . ")";
}

$query = "INSERT INTO table_name ($fields) VALUES (" . implode (', ', $values) . ")";

Giải pháp này sẽ hoạt động với bất kỳ số lượng thuộc tính nào được xác định trong mảng lồng nhau đầu tiên, miễn là tất cả các mảng lồng nhau khác có cùng độ dài. Đối với mảng ở trên, đầu ra sẽ là:

INSERT INTO table_name (name, age, gender) VALUES (Ian, 24, male), (Janice, 21, female)

Để biết phần trình diễn, hãy xem http://codepad.org/7SG7lHaH , nhưng lưu ý rằng tôi đã xóa lệnh gọi tới mysql_real_escape_string () trên codepad.org, vì chúng không cho phép hàm. Trong mã của riêng bạn, bạn nên sử dụng nó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về ADDTIME () - MySQL

  2. Cách đặt Bộ ký tự và đối chiếu của một bảng trong MySQL

  3. Các truy vấn cập nhật mysql có được hưởng lợi từ một chỉ mục không?

  4. Cách nhận bản ghi 15 ngày qua trong MySQL

  5. Làm cách nào để tạo một cột tăng tự động MySQL khác?