Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

membuat sisipan php dinamis ke dalam fungsi mysql?

Inilah yang kami gunakan untuk melakukan hal serupa (memasukkan ke dalam tabel yang tidak dapat kami kendalikan, dan yang tidak memiliki akses API)

Menggunakan kueri DESCRIBE memastikan hanya kolom yang ada yang dimasukkan.

$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) . ')';

edit:DB() adalah pembungkus kami di sekitar MDB2.

Dan tentu saja ini memungkinkan mereka untuk mengisi seluruh baris. Jika Anda memiliki kolom yang dibatasi (id kenaikan otomatis dan semacamnya), Anda harus memfilternya dari data formulir...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan MySQL dengan Android

  2. Koneksi Database ke MySQL habis waktu bahkan setelah menyetel c3p0.testConnectionOnCheckout=true

  3. Mengamankan php api untuk digunakan dalam aplikasi android

  4. MySQL:Tidak dapat menggunakan SIGNAL di Pemicu

  5. Akses ke tabel tertentu dalam tag html