Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czy możesz używać nazwanych parametrów w Laravel Eloquent?

No cóż, jeśli ktoś ma lepsze rozwiązanie, śmiało prześlij je, a może powiedz mi, co może być nie tak z moim tymczasowym rozwiązaniem. Zamieniam wszystkie „?” z ":autoparam" z przyrostem parametru tworzącym ":autoparam0", ":autoparam1", ":autoparam2" itp.

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

Następnie, gdy otrzymam żądanie powiązania parametru z PDO, sprawdzam, czy parametr jest liczbowy. W większości języków, o ile wiem, indeksy numeryczne są nieprawidłowymi identyfikatorami, więc mogę spokojnie założyć, przynajmniej dla mojego sterownika PDO Userspace, że mogę zastąpić nazwę parametru numerycznego:

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

Na razie działa, muszę wykonać więcej testów z laravelem, aby sprawdzić, czy problem pojawia się w innym wyniku, ale jak dotąd wydaje się to w porządku...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaka jest najlepsza metoda, aby zawsze uzyskać 2 miejsca po przecinku w Oracle?

  2. Jak włączyć wyjście serwera w DataGrip?

  3. Lista wyszukiwania Oracle słów w łańcuchu i powróć do istniejących

  4. Czy wydajność wpłynie na wielokrotne wywoływanie procedury bazy danych z aplikacji?

  5. Oracle PLSQL odpowiednik ASCISTR(N'str')