Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bisakah Anda menggunakan parameter bernama di Laravel Eloquent

Oh well, jika seseorang memiliki solusi yang lebih baik, silakan kirimkan atau mungkin beri tahu saya apa yang salah dengan solusi sementara saya. saya ganti semua "?" dengan ":autoparam" dengan kenaikan parameter membuat ":autoparam0", ":autoparam1", ":autoparam2", dll.

    //Replace ? with a pseudo named parameter
    $newStatement = null;
    $parameter = 0;
    while($newStatement !== $statement)
    {
        if($newStatement !== null)
        {
            $statement = $newStatement;
        }
        $newStatement = preg_replace('/\?/', ':autoparam'.$parameter, $statement, 1);
        $parameter++;
    }
    $statement = $newStatement;

Kemudian, ketika saya menerima permintaan untuk mengikat parameter dari PDO, saya memeriksa apakah parameternya numerik. Dalam kebanyakan bahasa, sejauh yang saya tahu, indeks numerik adalah pengidentifikasi yang tidak valid, jadi saya dapat dengan aman berasumsi, setidaknya untuk driver PDO Userspace saya bahwa saya dapat mengganti nama parameter numerik dengan:

    //Replace the first @oci8param to a pseudo named parameter
    if(is_numeric($parameter))
    {
        $parameter = ':autoparam'.$parameter;
    }

Ini berfungsi untuk saat ini, saya perlu melakukan lebih banyak tes dengan laravel untuk melihat apakah masalah muncul dalam skor yang berbeda, tetapi sejauh ini, tampaknya baik-baik saja...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Tabel partisi berdasarkan bulan

  2. Metode Pengumpulan:Prosedur HAPUS Dalam Database Oracle

  3. Kelompokkan berdasarkan nilai-nilai yang berurutan

  4. Oracle Set Operator

  5. Cara Memformat Angka sebagai Angka Romawi di Oracle