Hvordan til at ringe til lagrede procedure på Laravel?

Fejl kommer, når jeg køre update, der er gemt procedure i laravel5 som dette..

QueryException i Connection.php line 620:
SQLSTATE[42000]:
Syntaks fejl eller adgangsfejl: 1064 Du har en fejl i din SQL-syntaks; se vejledningen, der svarer til din MySQL server version til den rigtige syntaks til at bruge i nærheden af 'Sandeep,09999999999,,,[email protected],,,,,,,)' på linie 1 (SQL: call sp_clientupdate(108, Sandeep,09999999999,,,[email protected],,,,,,,))

min kode….

return DB::select('call sp_clientupdate(108, Sandeep,0999999999,,,[email protected],,,,,,,)');

Pls nogen give mig løsningen…..

vis din forespørgsel med spørgsmål
Brug DB::statement i stedet.
venligst, læs noget om SQL-injektioner.
Ifølge laravel.com/docs/5.5/database, DB::erklæring returnerer null; dermed, det ser ud til, at du skal bruge DB::vælg denne, hvis du forventer et resultat, der er. Det sagt, er jeg enig i, at du bør rynke på næsen ved hjælp af rå SQL. I betragtning af, at OP ringer til en lagret procedure, synes det mig, at han føler på samme måde.

OriginalForfatteren Software Engineer | 2015-05-28

3 svar

  1. 8

    Du ændre.

    return DB::select('call sp_clientupdate("108", "Sandeep","0999999999","","","[email protected]","","","","","","",)');

    Prøve det virker perfekt….

    Ja det virker fint
    Min take-away fra denne udveksling er, at de OP undladt at tage hensyn til, at MySQL gemte rutiner ikke understøtter valgfrie parametre. Måske, ligesom mig, han kommer fra, noget i retning af Microsoft SQL Server, der gør.

    OriginalForfatteren Prashant Patel

  2. 13

    Prøve denne ene,

    DB::statement('call sp_clientupdate("108", "Sandeep","0999999999","","","[email protected]","","","","","","",)');

    Det virker perfekt.

    hvordan til at fyre en begivenhed efter proceduren. Jeg får denne fejl Pakker ud af orden. Forventet 1 modtaget 36. Packet size=10

    OriginalForfatteren Tonmoy Nandy

  3. 0

    Der kører Microsoft SQL Server Stored Procedure (MS SQL Server, ved hjælp af PHP Laravel ramme. Hvis du forsøger at køre SP hjælp Laravel Model, så du kan bruge følgende to tilgange.

    $submit = DB::select(" EXEC ReturnIdExample ?,?", array( $paramOne ,$paramTwo ) ); 
    
    $submit = DB::select(" EXEC ReturnIdExample $paramOne,$paramTwo ");

    Hvis incase du passerer Varchar Parameter, så skal du bruge følgende:

    $submit = DB::select(" EXEC ReturnIdExample '$paramOne', '$paramTwo' ");

    Hvis du er bare passerer parameter, som er af INT eller BIGINT, bør dette arbejde, og du kan få tilbage fra SP:

    $submit = DB::select(" EXEC ReturnIdExample $paramOne,$paramTwo ");

    Mit Oprindelige Svar: Laravel Model SQL Server: Få Output-Parametre fra Gemt Procedure:

    Laravel Model SQL Server: Få Output-Parametre fra Gemt Procedure

    OriginalForfatteren B AV B

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *