1

I need to insert static data in DATABASE during migration. so in my migration file I am adding one insert query but this is unfortunately giving error. same sql query running properly in mysql console.

$this->addSql('insert into  `Translations` values('fr', 
'{
  "footer_header": "Contactez-nous",
  "footer_address": "Tour Ariane 92088 La Défense",
  "footer_phone": "+33(1) 42 74 83 02",
  "footer_email": "marsh@marsh.com",
  "footer_website": "www.marsh.com",
  "footer_cookies": "Politique relative aux cookie",
  "footer_confidential": "Politique de confidentialité",
  "footer_utilise": "Conditions d’utilisation",
  "footer_link_tou": "https://www.marsh.com/fr/fr/terms-of-use.html",
  "footer_link_privacy": "https://www.marsh.com/fr/fr/privacy-notice.html",
  "footer_link_cookies": "https://www.marsh.com/fr/fr/cookie-notice.html",
  "marketing_contact": "Contact",
  "marketing_address": "Tour Ariane 92088 La Défense",
  "marketing_phone": "+33(1) 42 74 83 02",
  "marketing_email": "marsh@marsh.com",
  "price_lab": "Compte tenu des informations complétées précemment, votre prime s''élève à",
  "price_lab1": "HT",
  "price_lab2": "Taxes",
  "price_lab3": "TTC",
  "price_lab4": "Frais de gestion",
  "price_lab5": "Montant total de votre prime",
  "signature_heading": "Veuillez remplir les informations ci-dessous afin de signer électroniquement votre document :",
  "signature_name1_lab": "<div>Prénom</div>",
  "signature_name1": "Prénom",
  "signature_name2_lab": "<div>Nom</div>",
  "signature_name2": "Nom",
  "signature_phone_lab": "<div>Numéro de téléphone</div>",
  "signature_phone": "Format attendu : +33658968956",
  "signature_otp": "Nous vous avons envoyé votre code, merci de le renseigner ci-dessous.",
  "payment_gateway": "Pour vous permettre de procéder au règlement en ligne par carte bancaire de votre cotisation d’assurance en toute sérénité, MARSH a choisi la solution proposée par son partenaire bancaire : la Société Générale. Le paiement s’effectuant sur un serveur totalement sécurisé, aucune information ne transite par notre site https://connexion.marsh.com. Les échanges se déroulant en mode SSL (Secure Sockets Layer), norme de sécurité de transfert, l’ensemble des données sont cryptées afin d’empêcher leur lecture ou leur interception par des tiers. Ce protocole permet d’établir une connexion sécurisée sur Internet, afin d’exclure toute fraude. Le cadenas placé en barre d’adresse de votre écran témoigne de la sécurisation de la connexion ».",
  "payment_button": "Traiter le paiement",
  "final_page": "Votre demande est bien enregistrée. Nos équipes vont étudier votre dossier et reviendront vers vous par email rapidement. Si vous avez des questions, nous vous invitons à adresser un email à ",
  "final_file_name": "Votre document signé",
  "zipFile_Name": "Fichiers attachés"
}')');

I am getting below error while executing.

enter image description here

malarzm
  • 2,831
  • 2
  • 15
  • 25
Shruti sharma
  • 199
  • 6
  • 21
  • 67
  • 1
    You need to escape ```'``` to ```\'``` – Pavel Třupek Jan 31 '22 at 09:25
  • 1
    Does this answer your question? [What is the difference between single-quoted and double-quoted strings in PHP?](https://stackoverflow.com/questions/3446216/what-is-the-difference-between-single-quoted-and-double-quoted-strings-in-php) – Pavel Třupek Jan 31 '22 at 09:52

1 Answers1

1

The problem is because of the ', you need to escape it like that :

$this->addSql('insert into  `Translations` values(\'fr\', \'{
  "footer_header": "Contactez-nous",
  "footer_address": "Tour Ariane 92088 La Défense",
  "footer_phone": "+33(1) 42 74 83 02",
  "footer_email": "marsh@marsh.com",
  "footer_website": "www.marsh.com",
  "footer_cookies": "Politique relative aux cookie",
  "footer_confidential": "Politique de confidentialité",
  "footer_utilise": "Conditions d’utilisation",
  "footer_link_tou": "https://www.marsh.com/fr/fr/terms-of-use.html",
  "footer_link_privacy": "https://www.marsh.com/fr/fr/privacy-notice.html",
  "footer_link_cookies": "https://www.marsh.com/fr/fr/cookie-notice.html",
  "marketing_contact": "Contact",
  "marketing_address": "Tour Ariane 92088 La Défense",
  "marketing_phone": "+33(1) 42 74 83 02",
  "marketing_email": "marsh@marsh.com",
  "price_lab": "Compte tenu des informations complétées précemment, votre prime s élève à",
  "price_lab1": "HT",
  "price_lab2": "Taxes",
  "price_lab3": "TTC",
  "price_lab4": "Frais de gestion",
  "price_lab5": "Montant total de votre prime",
  "signature_heading": "Veuillez remplir les informations ci-dessous afin de signer électroniquement votre document :",
  "signature_name1_lab": "<div>Prénom</div>",
  "signature_name1": "Prénom",
  "signature_name2_lab": "<div>Nom</div>",
  "signature_name2": "Nom",
  "signature_phone_lab": "<div>Numéro de téléphone</div>",
  "signature_phone": "Format attendu : +33658968956",
  "signature_otp": "Nous vous avons envoyé votre code, merci de le renseigner ci-dessous.",
  "payment_gateway": "Pour vous permettre de procéder au règlement en ligne par carte bancaire de votre cotisation d’assurance en toute sérénité, MARSH a choisi la solution proposée par son partenaire bancaire : la Société Générale. Le paiement s’effectuant sur un serveur totalement sécurisé, aucune information ne transite par notre site https://connexion.marsh.com. Les échanges se déroulant en mode SSL (Secure Sockets Layer), norme de sécurité de transfert, l’ensemble des données sont cryptées afin d’empêcher leur lecture ou leur interception par des tiers. Ce protocole permet d’établir une connexion sécurisée sur Internet, afin d’exclure toute fraude. Le cadenas placé en barre d’adresse de votre écran témoigne de la sécurisation de la connexion ».",
  "payment_button": "Traiter le paiement",
  "final_page": "Votre demande est bien enregistrée. Nos équipes vont étudier votre dossier et reviendront vers vous par email rapidement. Si vous avez des questions, nous vous invitons à adresser un email à ",
  "final_file_name": "Votre document signé",
  "zipFile_Name": "Fichiers attachés"
}\')');
jean-max
  • 1,640
  • 1
  • 18
  • 33