sql >> Database >  >> RDS >> Oracle

Kun je benoemde parameters gebruiken in Laravel Eloquent?

Ach, als iemand een betere oplossing heeft, stuur die dan in of vertel me misschien wat er mis kan zijn met mijn tijdelijke oplossing. Ik vervang alle "?" met ":autoparam" met een parameterverhoging die ":autoparam0", ":autoparam1", ":autoparam2", enz. creëert.

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

Als ik vervolgens een verzoek ontvang om een ​​parameter van PDO te binden, controleer ik of de parameter numeriek is. In de meeste talen zijn, voor zover ik weet, numerieke indexen ongeldige identifiers, dus ik kan veilig aannemen, tenminste voor mijn PDO Userspace-stuurprogramma dat ik de numerieke parameternaam kan vervangen door:

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

Het werkt voor nu, ik moet meer tests doen met laravel om te zien of het probleem in een andere score verschijnt, maar tot nu toe lijkt het goed...




  1. Een database herstellen in SQL Server 2017

  2. SQL-fout:ORA-00907:ontbrekend haakje rechts worstelt

  3. Hoe om te gaan met BLOB en CLOB in olingo v2?

  4. Het verschil tussen 'AND' en '&&' in SQL