Одинарные кавычки не интерполируют, они отправляют литерал текст, включая $
, что не то, что вам нужно.
Вы все равно не должны ставить эти значения в кавычки, просто поместите их как есть:
$db = mysqli_connect($mysql_host, $mysql_user, $mysql_pass)
Это очень распространенный анти-паттерн, чтобы видеть такие вещи, как "$x"
в PHP-коде, что, по-видимому, всплывает из сценариев оболочки, где это может быть необходимо. В PHP это не так, и часто вызывает проблемы, как здесь.
Не забудьте сохранить подключение к базе данных в переменную , иначе оно будет выброшено, прежде чем вы сможете его использовать.
Следует также отметить, что объектно-ориентированный интерфейс к mysqli
значительно менее многословен, что облегчает чтение и аудит кода, и его нелегко спутать с устаревшим интерфейсом mysql_query
. Прежде, чем вы слишком инвестируете в процедурный стиль, стоит переключиться. Пример: $db = new mysqli(…)
и $db->prepare("…")
Процедурный интерфейс - это артефакт эпохи PHP 4, когда был введен mysqli
API, и в идеале его не следует использовать в новом коде.
Правильный способ использования mysqli
:
$db = new mysqli($mysql_host, $mysql_user, $mysql_pass)
Там, где это работает точно так же, за исключением того, что оно гораздо более минимально, как в:
$stmt = $db->prepare("...");
Вместо более многословного:
$stmt = mysqli_prepare($db, "...")
Где это становится еще более подробным для функций манипулирования операторами.