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

tạo một php động chèn vào hàm mysql?

Đây là những gì chúng tôi sử dụng để làm một việc tương tự (chèn vào bảng mà chúng tôi không có quyền kiểm soát và không có quyền truy cập API)

Sử dụng truy vấn DESCRIBE đảm bảo chỉ các cột tồn tại mới được chèn.

$db = new DB();
$sql = 'DESCRIBE `table`';
$result = $db->query($sql);
$row = array();
$query = array();

while ($row = $result->fetchRow())
{
    if (array_key_exists($row['field'], $form_data))
        if (is_null($form_data[$row['field']]))
            $query[$row['field']] = 'NULL';
        else
            $query[$row['field']] = $db->quote($form_data[$row['field']]);
}

$keys = array_keys($query);

foreach ($keys as &$key)
    $key = $db->quoteIdentifier($key);

unset($key);

$vals = array_values($query);

$sql = 'INSERT INTO `table` '
     . '(' . implode(', ', $keys) . ') '
     . 'VALUES(' . implode(', ', $vals) . ')';

chỉnh sửa:DB () là trình bao bọc của chúng tôi xung quanh MDB2.

Và tất nhiên điều này cho phép họ điền vào toàn bộ hàng. Nếu bạn có các cột bị hạn chế (id tăng tự động, v.v.), bạn sẽ phải lọc những cột đó ra khỏi dữ liệu biểu mẫu ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các phương pháp hay nhất cho URL có khoảng trắng và các ký tự đặc biệt

  2. MYSQL:chọn một phần của văn bản và cắt nó dựa trên vị trí của dấu chấm

  3. mysql tuần từ Thứ Hai đến Chủ Nhật

  4. Làm cách nào để cài đặt mysql im lặng trong thiết lập đổi mới?

  5. Làm cách nào để bảo vệ diễn đàn của tôi khỏi spam?