При переносе 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');