我的网站与 phpbb 论坛集成在一起,我正在尝试使用一个 php 文件和一个模板来使用数据库中的不同行来拉出一个独特的页面。我的示例文件如下所示:
.php 文件:
<?php
include "includes/phpbb.php";
$template->set_filenames(array(
'body' => 'people.html',
));
$name = $_GET['name'];
$result = $db->sql_query("SELECT * FROM people WHERE name = $name");
while($row = $db->sql_fetchrow($result))
{
$template->assign_vars(array(
'NAME' => $row['name'],
'AGE' => $row['age'],
));
}
$site->page_footer();
?>
这是html模板:
<!-- INCLUDE overall_header.html -->
{NAME} is {AGE} years old.
<!-- INCLUDE overall_footer.html -->
我在表中有两行。一个叫“Walt”,年龄“51”,另一个叫“Jesse”,年龄“25”。每当我输入 people.php?name=Walt 之类的 url 时,我都会收到一个错误页面:
SQL ERROR [ mysqli ]
Unknown column 'Walt' in 'where clause' [1054]
SQL
SELECT * FROM people WHERE name = Walt
如果我输入任何类型的数值,它会很好地拉起页面,但没有填写任何变量,因此页面显示“已有数年”。如果我输入 ?name=name,它会拉出数据库表中的第二行,并说“Jesse 已经 25 岁”(那真的让我很困惑)。
我做错了什么导致这个?我显然希望能够在 url 中输入“Walt”或“Jesse”,并仅使用他们的一行信息来获取整个页面。