PHP 从 SQL 结果中读取变量


php read variables from sql result

我正在php中使用一些动态字符串。这应该创建一个字符串,如下所示:

嘿德本·奥尔德特

其中Deben和Oldert都是变量。

$firstname = "Deben";
$lastname = "Oldert";
$body = mysqli_fetch_assoc(mysqli_query($conn, "SELECT body FROM mail WHERE type='{$_GET['type']}'"))['body'].PHP_EOL;
//The body field contains <p>Hey $firstname $lastname</p>
echo $body

它输出Hey $firstname $lastname
当我尝试时

$a = 'Deben';
$b = 'Oldert';
$b = "Hey $a $b".PHP_EOL;
echo $b;

它输出Hey Deben Oldert

那么,为什么它不能从mysqli_fetch的结果中工作呢?

PHP 将解析双引号字符串并替换变量值。但它不会解析变量的内容并执行此操作。

因此,当您打印"Hey $a $b"时,它将用它们的值替换$a$b。但是当你回显$b时,它会打印$b中的内容 - 它不会先解析它。同样,如果您'Hey $a $b',它也不会解析该内容。

当你从数据库中获取模式时,你通常会做自己的替换,例如使用printf()。