Bonjour j'ai créer mon application en local avec laravel 6, mysql 8.0.10, php 7.0.10 j'utilise les procédures stocée pour extraire et analysé les données sans problème. Depuis hier lorsque j'ai basculé mon projet en production j'ai mis la base de données sur un VPS et les fichiers laravel sur un shared hosting hors du VPS. j'arrive bien à me connecté et toutes les requettes faites aec DB::select ou autres passent très le seul problème je rencontre c'est lorsque je veux appeler une procédure stocké cela me renvoi l'erreur 500
NB je rappelj'a déjà augmenté la taille du php_memory_execution à plus de 512M et autres valeurs du php.ini d'après certains recherches sur google et cela n'a toujours résolu mon problem pourtant en local tout fonctionne

 public function getDataDashboard(){
        try{
            $result['listePrescripteur'] = DB::select(DB::raw("CALL getAllPrescripteurAndTotalPatient()"));

            return response()->json([
                'data' => $result,
                'error' => false
            ],200);
        }catch (\Exeption $e){
             return response()->json([
                 'messages' => $e->getMessage(),
                 'error' => true
             ],200);

         }
    }

Ce que je veux

récupérer les résultats de ma procédure stockée

Ce que j'obtiens

{message: "Allowed memory size of 536870912 bytes exhausted (tried to allocate 1701606784 bytes)",…}
exception: "Symfony\Component\ErrorHandler\Error\FatalError"
file: "/home/trademot/public_html/vendor/laravel/framework/src/Illuminate/Database/Connection.php"
line: 336
message: "Allowed memory size of 536870912 bytes exhausted (tried to allocate 1701606784 bytes)"
trace: []

6 réponses


ce serait intéressant de voir la proc stock ;)

a++

romses
Auteur

Bonjour Perrot01
merci de trouver ma procédure

BEGIN
SELECT
count(*) AS total,
(CASE
WHEN e.description IS NULL OR e.description = '' THEN CONCAT(e.examen,'-',e.code_examen) ELSE CONCAT(e.examen,' - ',e.code_examen,' (',e.description,')')
END) AS Examen
FROM
oxygen_request_analyses AS r
INNER JOIN oxygen_examens AS e ON r.oxygen_examens_id = e.id
WHERE e.status='active'
GROUP BY
oxygen_examens_id ORDER BY total ASC;

END

je rappel que cette procédure passe sans problème en local

Elle retourne combien d'enregistrement cette proc ?
a+

romses
Auteur

elle retourne 6 enregistrement

romses
Auteur

dans phpmyadmin sur le serveur de production cele s'execute normalement et je reçoit 6 enregistrements

romses
Auteur

ce que je constate c'est que si je fais ceci : $result['resp'] = DB::select('select from users'); cela va fonctionner à merveille par contre si je lemet dans une procédures stckée
DROP PROCEDURE get_users;
CREATE DEFINER=root@localhost PROCEDURE get_users() NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN
SELECT FROM users;
END

j'aaurai plutôt une erreur 503 quelqu'un a déjà eu ce problem?
Merci