PHP:替换a";变量";从mysql查询(表的内容)
我试图从mysql查询中回显一个变量,如下所示:PHP:替换a";变量";从mysql查询(表的内容),php,mysql,sql,variables,Php,Mysql,Sql,Variables,我试图从mysql查询中回显一个变量,如下所示: <?php ...//FYI: mysql connection already established //Table: title //col: page | title //row: html | "$domain_name: Welcome" $page_id = basename(getcwd()); $domain_name = "Name of My Domain"; $sql = "SELECT title FROM
<?php
...//FYI: mysql connection already established
//Table: title
//col: page | title
//row: html | "$domain_name: Welcome"
$page_id = basename(getcwd());
$domain_name = "Name of My Domain";
$sql = "SELECT title FROM mydatabase.title WHERE page = '$page_id' ";
//The query's result is 1 row
$dbq = mysql_query ($sql);
$dba = mysql_fetch_array( $dbq );
echo $dba["title"];
//it outputs: $domain_name: Welcome", instead of "Name of My Domain: Welcome"
?>
我认为“(双引号)应该用它的值替换变量
只有在代码中指定字符串的情况下,这才有效。如果字符串来自外部,它就没有这种神奇的行为
因此,您可以选择的唯一解决方案是:
echo str_replace('$domain_name', $domain_name, $dba["title"]);
或者,您可以使用某种模板引擎,如Twig或Smarty,将数据库值视为模板,将变量视为数据。您可以在数据库级别替换它:
$sql = 'SELECT REPLACE(title, \'$domain_name\',\''.$domain_name.'\') as title FROM mydatabase.title WHERE page = '.intval($page_id);
//The query's result is 1 row
$dbq = mysql_query ($sql);
$dba = mysql_fetch_array( $dbq );
echo $dba["title"];
(注意单引号)