【问题标题】:Trying to use $_GET to display a row's information from a db table尝试使用 $_GET 显示数据库表中的行信息
【发布时间】:2013-06-30 22:43:09
【问题描述】:

总的来说,我对 php 非常陌生,所以我意识到其中一些可能看起来“愚蠢”,但请多多包涵。

我有一个与 phpBB 论坛集成的页面,所以它使用他们的模板系统,所以我不需要在 php 页面中回显任何 html。另外,每个页面都包含一个到数据库的连接,所以我不需要放置任何连接。

在 html 页面上,我使用 {NAME} 和 {AGE} 之类的位来提取信息,但我的问题在于 php 文件本身。我希望页面的 url 具有类似“file.php?name=John”的内容,它将在该行中显示数据库中“John”的数据。

这是我目前正在使用的代码。假设大部分内容一开始并没有严重错误,我在此代码的第 2 行收到错误“解析错误:语法错误,意外 T_STRING”。

$name = $_GET['name'];
$result = mysql_query(SELECT * FROM 'people' WHERE 'name' = $name);
while($row = $db->sql_fetchrow($result))
{
$template->assign_vars(array(
'NAME'          => $row['name'],
'AGE'           => $row['age'],
    ));
}

我正在使用一个名为“people”的表格,当然,它有两列标题为“name”和“age”。如果有人能告诉我我的错误或至少能指导我正确的方向,将不胜感激。

【问题讨论】:

标签: php sql get


【解决方案1】:

您缺少引号和一些安全性:

$name = mysql_real_escape_string($_GET['name']);
$result = mysql_query("SELECT * FROM `people` WHERE `name` = '$name'");

虽然尝试为新代码学习 PDO 或 MySQLi,但它本质上更安全。

【讨论】:

  • 您也缺少引号(假设 name 列是字符串)
  • 不,反引号用于标识符,而不是字符串文字
  • 修正了,我回答了,然后意识到很多小错误
  • 在这个例子中,页面会有多个 php 警告 "mysql_query() [function.mysql-query]:" 并且还会停止与数据库的连接。
猜你喜欢
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 2016-06-21
  • 2017-04-16
  • 2015-11-16
  • 2013-11-10
  • 2012-06-21
  • 1970-01-01
相关资源
最近更新 更多