php中的smarty变量

时间:2015-01-30 18:22:47

标签: php smarty

我有问题。我有一个smarty变量,它在文本框中分配,如:

<input type="text" name="blogID" id="blogID" value="{$e.id}">

我想在{php}{/php}中使用此文本值,并且我想在此文本框值上选择数据库表中的所有数据。这是一个例子:

{php}
$select = mysql_query("select * from tbl_blog where id = '".$_POST['blogID']."'");
{/php}

这不起作用我该如何解决?

3 个答案:

答案 0 :(得分:0)

正如其他人所说,mysql_query已被弃用,PDO可以防止sql注入

$hostname = "localhost";
$dbname = "database";
$username = "username";
$password = "password";

$pdo = new PDO("mysql:host=".$hostname.";dbname=".$dbname."", $username, $password);
$stmt = $pdo->prepare("SELECT * FROM tbl_blog WHERE id = :id");
$stmt->bindValue(':id', $_POST['blogID'], PDO::PARAM_INT);
$stmt->execute();
$select = $stmt->fetch(PDO::FETCH_ASSOC);

答案 1 :(得分:0)

解决方案取决于很多事情 -

  1. 你有什么错误,如果有的话?
  2. 如果您在某个页面上包含mysql_connect()
  3. 您是否在同一页面上以post提交表单?
  4. 您也可以尝试将您的php代码封装在if()块中,例如 -

    {php}
    if (isset($_REQUEST['blogID'])) {
    
        $select = mysql_query("select * from tbl_blog where id = '".$_REQUEST['blogID']."'");
    }
    {/php}
    
  5. 此外,我建议为php使用单独的文档,并使用$smarty->assign()而不使用已弃用的函数。

答案 2 :(得分:0)

{php}标签已从Smarty弃用,不应使用。将PHP逻辑放在PHP脚本或插件函数中。

http://www.smarty.net/docs/en/language.function.php.tpl