根据url变量(例如template.php?id=1)从数据库中获取一行数据


Fetch row of data from database based on url variable (ex. template.php?id=1)

我正试图创建一个模板,根据url变量从数据库中获取一行数据?id=1。什么时候http://www.example.com/template.php?id=1被访问,我想显示该特定行的所有信息,例如标题。

目前,我是通过查看php.net并对其进行一些处理来了解这一点的。我不知道如何解决这个问题,因为我是PHP的新手,没有那么多经验:S。

$result = mysql_query("SELECT id,title FROM table WHERE id = urldecode( $_GET['id']        ) ");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
echo $row[0];
echo $row[1];

希望这个范围不要太宽。

首先,不要运行简单的字符串查询,而是运行一个安全的数据库层,例如pdo。其次,你的代码或多或少是可以的。我会这样做:

$id = $_GET['id'];
$query = mysql_query("SELECT id,title FROM table WHERE id = $id");

如果将一个变量放入"$id"字符串中,则其值将被放入其中。如果你把它放在"$id"字符串中,它不会。这是你想要的吗?

编辑:顺便说一句,没有基于URL的东西,有查询字符串。您可以从查询字符串中获取id变量。