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

PHP Ekstrak Kode Dari TextArea dan Lewati ke Mysql SELECT IN Query

Pertama tentang polanya:

  • Anda tidak memerlukan grup pengambilan, cukup gunakan \K untuk memulai kembali pertandingan fullstring.
  • Saya akan menggunakan '[^']*' pada komponen kutipan tunggal pertama/kosong dari string input Anda untuk berjaga-jaga jika ada teks yang mengisi posisi itu.

Tentang kueri Anda:

  • Tidak aman. Anda tidak boleh secara langsung memasukkan data yang dikirimkan pengguna ke dalam kueri untuk tujuan keamanan.
  • Di sini pernyataan yang disiapkan dengan ? placeholder digunakan.
  • Karena jumlah placeholder/params-to-be-bound adalah variabel, konvolusi call_user_func_array() diperlukan.
  • Saya juga telah mengimplementasikan bind_result() untuk membantu pemrosesan kumpulan hasil.

Kode Belum Diuji:

$_POST['newfeatured']="new myProduct('', 'bbc_609'),
new myProduct('', '35857'),";

if(preg_match_all("/new (?:my|featured)Product\('[^']*', '\K[^']*/",$_POST['newfeatured'],$prd_ids)){
    $params=$prd_ids[0];  // the fullstring matches
    $count=count($params);  // number of fullstring matches
    $csph=implode(',',array_fill(0,$count,'?'));  // comma-separated placeholders

    $query="SELECT A.productid, A.name, A.brand, B.code
            FROM product A
            INNER JOIN price B ON A.productid=B.productid
            WHERE A.productid IN ($csph);";

    $stmt=$mysqli->prepare($query);  // for security reasons

    array_unshift($params,str_repeat('s',$count));  // prepend the type values string
    $ref=[];  // add references
    foreach($params as $i=>$v){
        $ref[$i]=&$params[$i];  // pass by reference as required/advised by the manual
    }
    call_user_func_array([$stmt,'bind_param'],$ref);    

    $stmt->execute();
    $stmt->bind_result($id,$name,$brand,$code);
    while($stmt->fetch()){
        echo "Whatever you want to do with the results: $id, $name, $brand, $code\n";
    }
    $stmt->close();
}else{
    echo "bonk";
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memasukkan data ke mysql menggunakan Java

  2. Laravel - Model Kueri jika nilai berisi string tertentu (diambil dari input pencarian)

  3. IPN Paypal Berlaku di sandbox INVALID saat live

  4. Bagaimana cara memasukkan skema database MySQL di GitHub?

  5. ubah waktu GMT ke EST