在数据库中使用PHP变量

时间:2011-05-08 19:07:54

标签: php mysql

我想将HTML代码保存到MySQL数据库中。我保存它没有问题,但我有一个字段,我想在其中加入一个值。

<input type="text" size="18" value="$user" />

当我从数据库中检索它并将其发送到浏览器时,文本字段的值不是$user变量的值。

这是我保存的PHP代码:

function SaveHTML(){
    global $cn;
    $content=mysql_real_escape_string( $_POST["html"],$cn);
    $url=mysql_real_escape_string("http://www.google.com/",$cn);
    mysql_query("Insert into HTML(content,URL) values('$content','$url')");
}

4 个答案:

答案 0 :(得分:3)

您必须回显该值才能显示它:

<input type="text" size="18" value="<?php echo htmlspecialchars($user, ENT_QUOTES, 'UTF-8'); ?>" />

如您所见,我还使用htmlspecialchars()来防止XSS attacks

另外,请不要将mysql_*函数用于代码。它们已不再维护,社区已开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDOMySQLi。如果您无法决定,this article将有助于选择。如果您想学习,here is a good PDO tutorial

我注意到的另一件事是您使用的是global关键字。最好将连接作为参数注入函数中:

function SaveHTML($cn){
    $content=mysql_real_escape_string( $_POST["html"],$cn);
    $url=mysql_real_escape_string("http://www.google.com/",$cn);
    mysql_query("Insert into HTML(content,URL) values('$content','$url')");
}

编辑(死亡):

我想要的是以下内容:

假设您有一个varivle $user和一段HTML代码,如下所示:

$html = <<<'Death'
<input type="text" size="18" value="$user" />
Death;

现在,如果我将此变量($html)保存到数据库并在另一个页面中将此html发送给用户,我应该如何对html代码中的$user赋值为{{ 1}}在第二页?

答案: 我将字符串(实际上)保存到数据库,然后使用$user函数将eval()替换为它的值!

编辑PeeHaa

请注意,在大多数案例中,在您的数据库中使用HTML被认为是不好的做法(除非您)。我对$user的东西也不高兴(这总是不好的做法)。

答案 1 :(得分:1)

您可以使用个人标签,并在从数据库读取后用PHP变量替换该标签 像这样:

$html = '<input type="text" class="class" value="{user}">';
save $html to database  
$gethtml = get $html from database ; 

$last_html = str_replace('{user}',$user,$gethtml);

答案 2 :(得分:0)

您需要指定它是PHP代码。

<input type="text" size="18" value="<?php echo $user ?>" /> 

答案 3 :(得分:0)

如果要保存输入值,首先需要为其命名:

<input name="user" type="text" value="<?php echo $user?>" />

现在要检索它并将其保存在您的数据库中,您必须从POST变量中获取它

$content = mysql_real_escape_string($_POST['user']);

这将为您提供所需的价值。