PHP MYSQL-包含PHP变量的Echo MYSQL值?

PHP MYSQL-包含PHP变量的Echo MYSQL值?,php,mysql,variables,Php,Mysql,Variables,当用作mysql表中的值的一部分时,我尝试获取要显示的变量 $variable = 'cool'; MYSQL FIELD VALUE "This is '.$variable.' wow" 当我回显此值时,它显示为: This is '.$variable.' wow 我希望它显示为: This is cool wow 这里的诀窍是什么 @马克:对不起,我是新来的 $linkQuery3 = 'SELECT model FROM models WHERE model_id = "'.

当用作mysql表中的值的一部分时,我尝试获取要显示的变量

$variable = 'cool';

MYSQL FIELD VALUE

"This is '.$variable.' wow"
当我回显此值时,它显示为:

This is '.$variable.' wow
我希望它显示为:

This is cool wow
这里的诀窍是什么

@马克:对不起,我是新来的

$linkQuery3 = 'SELECT model
FROM models
WHERE model_id = "'.$pageModel.'"
';
$sql15 = mysql_query($linkQuery3) or die(mysql_error());
if (mysql_num_rows($sql15) == 0) {
    die('No results.');
} else {
    while($row = mysql_fetch_assoc($sql15)) {
     $model = stripslashes($row['model']);
    }
}

$linkQuery2 = 'SELECT l.link , l.desc , l.domId , d.domain FROM links l INNER JOIN domains d ON d.domId = l.domId WHERE l.catId="'.$pageCat.'" && (l.modId="1" || l.modId="'.$pageModel.'") ORDER BY domain
';
$sql3 = mysql_query($linkQuery2) or die(mysql_error());
if (mysql_num_rows($sql3) == 0) {
    die('No results.');
} else {
    $pageContent .= '';
    while($row = mysql_fetch_assoc($sql3)) {
     $linkAd = ($row['link']);
     $linkDesc = ($row['desc']);
     $linkDomain = ($row['domain']);
     $pageContent .= '
        <li><a href="'.$linkAd.'" target="_tab">'.$linkDesc.' '.$linkDomain.'</a></li>
    ';
    }
}
$linkQuery3='选择模型
来自模型
其中model_id=“”.$pageModel.”
';
$sql15=mysql\u query($linkQuery3)或die(mysql\u error());
if(mysql_num_rows($sql15)==0){
死亡(“没有结果”);
}否则{
while($row=mysql\u fetch\u assoc($sql15)){
$model=stripslashes($row['model']);
}
}
$linkQuery2='从链接中选择l.link、l.desc、l.domId、d.domain l内部连接域d在d.domId=l.domId上,其中l.catId=“”...pageCat.”“&&&(l.modId=“1”| | l.modId=“...pageModel.”按域排序
';
$sql3=mysql\u query($linkQuery2)或die(mysql\u error());
if(mysql_num_rows($sql3)==0){
死亡(“没有结果”);
}否则{
$pageContent.='';
while($row=mysql\u fetch\u assoc($sql3)){
$linkAd=($row['link']);
$linkDesc=($row['desc']);
$linkDomain=($row['domain']);
$pageContent.='
  • '; } }
    试试这个:

    "This is '" . $variable . '" wow"
    
    使用双引号:

    echo "This is " . $variable . " wow";
    

    您需要输入从MySQL检索的字符串。没有其他方法可以将字符串解释为PHP代码。然而,无论如何都应该避免使用eval()。您最好使用模板系统或简单的字符串替换系统,而不是评估数据库中的内容。

    这可能要简单得多。就这么做吧

    echo "This is '$variable' wow";
    
    这就是你所需要的。不需要离开字符串上下文并返回。外部双引号将计算变量的值。如果您在外部使用了单引号,那么它将作为$variable进行计算,而不是它的值

    因此,您可以编写如下select语句:

    $sql = "SELECT * FROM fancytbl WHERE id = '$id' AND myhands = 'diamonds'";
    

    请看,这很简单。

    您在这里所做的是尝试从数据库回显字符串,但用特定值替换占位符文本。要做到这一点,您不能只存储一个PHP解析器将以特定方式处理的字符串,并期望PHP在运行时看到该字符串时以相同的方式处理它

    以下是我的建议:对要替换的字符串部分使用更直接的分隔符,如下所示:

    "This is :variable: wow"
    
    并使用
    str_replace()
    来响应正确的内容。(您也可以出于同样的目的使用
    sprintf()


    (此处
    $mystring
    包含数据库中的字符串。)

    看起来您的引号不匹配。尝试将db值设置为“This is”。$variable。“wow”尝试了这个并显示为“$variable”。引号是这样的,因为echo'd字段显示在另一个变量中,碰巧它与某种声明有关吗?喜欢htmlspecialchars@Mark好的,谢谢你的编辑,这让我发疯了。我试图做的是当
    $linkDesc
    是echo'ddisplays as'“.$variable.”显示为“.$variable.”时,使
    $model
    的值显示在
    desc
    字段的值中。OP将字符串作为文本文本显示在其数据库中。回显包含字符串的变量不会神奇地将其视为PHP代码。这是正确的+1.另一个问题是,为什么要将变量存储在数据库中?你不应该将变量内容存储在数据库中,并改变存储/显示内容的方式吗?我看不出有什么理由建议在这里使用
    eval()
    ,因为OP中没有任何内容表明他除了echo参数化字符串之外还想做任何事情。eval()需要有效的JS代码。您需要执行
    $var='cool'$string='这是$var';eval(\$newstring='$string')。但再一次,eval()是邪恶的。您不是在做简单的字符串替换,而是在尝试动态编写一个全新的PHP脚本。这是个坏主意。改用str_replace()之类的方法。@Hammerite:是的,但OP正在将
    插入表(x)的值('This$variable')
    ,以便将文字
    $variable
    放在数据库中。除非您想执行str_replace($string,$variable,'cool'),否则无法解释检索到的字符串并用其值替换
    $varaible
    ,而不使用eval查看数据库“$model=stripslashes($row['model']);”中的变量内容,这就是为什么它比我的示例稍微复杂一点的原因。我在想stripslashes需要被替换,正如前面所说的,一个指令说,
    链接
    字段包含的php代码是$model?听起来我们都在同一个页面上,让我把这些信息放进去,我会让你知道:)谢谢!在这种情况下,stru将如何取代work<代码>$linkAd=($row['link'])变量位于字段
    链接
    中的一个值内,我不确定您在问什么。是否要检索列
    链接
    ,并替换其中出现的占位符?只需使用
    $linkAd=str_replace(':variable:',$variable,$row['link'])
    。或者您是说要使用
    link
    的值来执行替换?使用
    echo str_replace(':variable:',$row['link'],$mystring)
    。它比我承诺的小示例更复杂:)不过基本思想是存在的。
    echo str_replace(':variable:', $variable, $mystring);