При переносе phinx строка в двойных кавычках ("") распознается неправильно

У меня есть миграция с использованием phinx, на картинке выше семя данных.
(Я только что выделил некоторые разделы, извините за это)

Как видите, есть символы синего цвета, которые не распознаются, и я не знаю почему...
Они в двойных кавычках " ", и я думаю, что все виды кавычек (", ', `) совпадают правильно
но, когда я делаю

$ php phinx migrate

результат получается таким:

Каким-то образом эти синие символы распознаются как переменные, а не строки? Любое предположение о возможностях будет оценено. Я использую VSCode(не думаю, что я должен это говорить, но... да)

1 ответ

Решение

Когда внутри двойных кавычек, PHP интерпретирует $something как переменная, поэтому в вашем коде миграции PHP пытается получить значение для всех этих синих значений на рисунке.

Чтобы заставить его работать, вам нужно либо использовать одинарные кавычки и экранировать каждую одинарную кавычку внутри запросов, либо сохранять двойные кавычки и экранировать только знаки доллара (когда это применимо).

<?php
$a = "test";
echo "this is a $a"; // this is a test <-- this is what's happening to you
echo 'this is a \'$a\''; // this is a '$a' <-- one option
echo "this is a \$a"; // this is a $a <-- another opcion

Так это будет выглядеть примерно так:

$this->execute("INSERT INTO table (email, password) VALUES ('email@test.com', '\$2y\$10\$aerjgap2341234ommubi1234123');
Другие вопросы по тегам