php 从 sql 结果中读取变量
php read variables from sql result
我正在 php 中处理一些动态字符串。
这应该创建一个像这样的字符串:
Hey Deben Oldert
其中 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
。
但是当你执行 echo $b 时,它会打印 $b 中的内容——它不会首先解析它。
同样,如果您执行 'Hey $a $b'
,它也不会解析。
当您从数据库中获取模式时,您通常会自己进行替换,例如。 printf().
我正在 php 中处理一些动态字符串。 这应该创建一个像这样的字符串:
Hey Deben Oldert
其中 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
。
但是当你执行 echo $b 时,它会打印 $b 中的内容——它不会首先解析它。
同样,如果您执行 'Hey $a $b'
,它也不会解析。
当您从数据库中获取模式时,您通常会自己进行替换,例如。 printf().