Потратил некоторое время на устранение неполадок, из-за которых у веб-приложения PHP/MySQL возникали проблемы с подключением к базе данных. К базе данных можно было получить доступ из оболочки и phpMyAdmin с одними и теми же учетными данными, и это не имело смысла.
Оказывается, в пароле был знак $:
$_DB["password"] = "mypas$word";
Отправляемый пароль был «mypas», что явно неверно.
Каков наилучший способ справиться с этой проблемой? Я экранировал $ с помощью \
$_DB["password"] = "mypas\$word";
и это сработало.
Обычно я использую $string = 'test'
для строк, и, вероятно, именно поэтому я избегал этого раньше.
Это правильное поведение? Что, если бы этот пароль хранился в базе данных, а PHP извлек его, возникла бы та же проблема? Что мне здесь не хватает...
"like $this"
в исходном файле.php
. Строки из базы данных, из файла, от пользователя и т.д. интерполяции не подлежат. 01.04.2010"pas\$word"
. 15.10.2014