我有问题。我有一个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}
这不起作用我该如何解决?
答案 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)
解决方案取决于很多事情 -
mysql_connect()
?post
提交表单?您也可以尝试将您的php代码封装在if()
块中,例如 -
{php}
if (isset($_REQUEST['blogID'])) {
$select = mysql_query("select * from tbl_blog where id = '".$_REQUEST['blogID']."'");
}
{/php}
此外,我建议为php使用单独的文档,并使用$smarty->assign()
而不使用已弃用的函数。
答案 2 :(得分:0)
{php}标签已从Smarty弃用,不应使用。将PHP逻辑放在PHP脚本或插件函数中。