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

Memformat larik PHP untuk klausa SQL IN

Ada cara yang lebih baik

Anda menyebutkan di komentar bahwa Anda menggunakan CodeIgniter. Kecuali Anda membuat sesuatu yang luar biasa rumit, tidak ada alasan praktis Anda harus membuat kueri buatan sendiri ketika Anda memiliki where_in sudah terpasang.

Dan jika itu tidak berhasil, maka ada melarikan diri .

Oke, jadi, kebanyakan orang mengatakan bahwa Anda perlu mengutip item dan memberi Anda ini:

function createInClause($arr)
{
    return '\'' . implode( '\', \'', $arr ) . '\'';
}

tetapi itu tidak cukup jika Anda memiliki kemungkinan untuk masukan yang meragukan (seperti '); MAHASISWA DROP TABLE; -- . Untuk melindunginya, Anda perlu memastikan bahwa Anda memeriksa injeksi SQL:

function createInClause($arr)
{
    $tmp = array();
    foreach($arr as $item)
    {
        // this line makes sure you don't risk a sql injection attack
        // $connection is your current connection
        $tmp[] = mysqli_escape_string($connection, $item);
    }
    return '\'' . implode( '\', \'', $tmp ) . '\'';
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengukur waktu online di situs web

  2. SYSDATE() Contoh – MySQL

  3. salah menghitung dalam kueri

  4. Cara menyisipkan ke baris MYSQL dari beberapa array $_POST

  5. MySQL - Mengurangi nilai dari baris sebelumnya, kelompokkan menurut