使用PHP从mysql db中选择并回显单个字段

时间:2009-11-20 09:29:39

标签: php mysql

我试图从特定行中选择标题列

$eventid = $_GET['id'];
$field = $_GET['field'];
$result = mysql_query("SELECT $field FROM `events` WHERE `id` = '$eventid' ");
echo $result;

我得到的只是Resource id #19

我该怎么做?什么是最好的方法?

4 个答案:

答案 0 :(得分:16)

试试这个:

echo mysql_result($result, 0);

这就足够了,因为你只获取一行的一个字段。

答案 1 :(得分:9)

$eventid = $_GET['id'];
$field = $_GET['field'];
$result = mysql_query("SELECT $field FROM `events` WHERE `id` = '$eventid' ");
$row = mysql_fetch_array($result);
echo $row[$field];

但要注意sql注入,因为你在查询中直接使用$ _GET。注入的危险特别严重,因为没有数据库函数来转义标识符。相反,您需要通过白名单传递字段,或者(更好的是)在列名外部使用不同的名称,并将外部名称映射到列名。无效的外部名称会导致错误。

答案 2 :(得分:3)

阅读手册,它非常清楚:http://php.net/manual/en/function.mysql-query.php

通常你会这样做:

while ($row = mysql_fetch_assoc($result)) {
  echo $row['firstname'];
  echo $row['lastname'];
  echo $row['address'];
  echo $row['age'];
}

答案 3 :(得分:1)

使用mysql_real_escape_string转义你的值,因为PHP6不再适合你了! :)