Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Bạn có thể sử dụng các tham số được đặt tên trong Laravel Eloquent không

Ồ, nếu ai đó có giải pháp tốt hơn, hãy gửi nó đi hoặc có thể cho tôi biết điều gì có thể sai với giải pháp tạm thời của tôi. Tôi thay thế tất cả "?" với ":autoparam" với gia số tham số tạo ":autoparam0", ":autoparam1", ":autoparam2", v.v.

    //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;

Sau đó, khi tôi nhận được yêu cầu ràng buộc một tham số từ PDO, tôi sẽ kiểm tra xem tham số có phải là số hay không. Trong hầu hết các ngôn ngữ, theo như tôi biết, chỉ mục số là số nhận dạng không hợp lệ, vì vậy tôi có thể an toàn giả định, ít nhất là đối với trình điều khiển Không gian người dùng PDO của tôi rằng tôi có thể thay thế tên tham số số bằng:

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

Nó hoạt động ngay bây giờ, tôi cần thực hiện thêm các bài kiểm tra với laravel để xem liệu vấn đề có xuất hiện ở một điểm số khác hay không, nhưng cho đến nay, có vẻ như đã ổn ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dấu thời gian ngủ đông với múi giờ

  2. Thực thi cho mỗi bảng trong PLSQL

  3. Chuyển SELECT STATEMENT làm tham số IN để thủ tục và thực thi trong Oracle

  4. Thủ tục đảo ngược một chuỗi trong PL / SQL

  5. Làm thế nào để chuyển đổi một dãy ký tự thành một định dạng ngày tháng để lưu trữ trong cơ sở dữ liệu?