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

MySQLi menyiapkan pernyataan dengan permintaan pembaruan dinamis

Caranya adalah dengan membangun sebuah array yang berisi parameter yang ingin Anda ikat, kemudian dengan bantuan call_user_func_array , Anda dapat meneruskan larik ini ke bind_param .

Lihat http://www.php.net/ manual/en/function.call-user-func-array.php untuk detail tentang call_user_func_array .

Kode Anda dapat berupa:

    $para_type="";
    /* $para is the array that later passed into bind_param */
    $para=array($para_type);
    $query = 'UPDATE tickets SET ';

    IF(count($data) != 0) {
        /* Looping all values */

        foreach($data as $k=>$d) {
            $query .= '`'.$d['field'].'` = ? ,';

            $para_type .=$d['type'];

            $para[] = &$data[$k]['value'];
        }

        /* removing last comma */
        $query[(strlen($query)-2)] = '';

        /* adding where */
        $query .= ' WHERE `ticket_id` = ?';
        $para_type .= 'i';
        $para[]=&$ticket_id;

        call_user_func_array(array($stmt, 'bind_param'), $para);

        return true;
    }

Perhatikan & di depan semua parameter, diperlukan oleh bind_param .

Cara lain yang menurut saya lebih baik adalah dengan menggunakan PDO. Dibutuhkan parameter bernama dan dapat melakukan pengikatan tambahan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Server mysql MAMP tidak akan mulai. Tidak ada proses mysql yang berjalan

  2. pencarian teks lengkap tidak mengembalikan jumlah total

  3. Gunakan Cloud Formation Templates untuk menjalankan instans MySQL di RDS

  4. Kunci asing MySQL - bagaimana cara menerapkan satu-ke-satu di seluruh tabel?

  5. Apa perbedaan antara INNER JOIN, LEFT JOIN, RIGHT JOIN dan FULL JOIN?