我试图从特定行中选择标题列
$eventid = $_GET['id'];
$field = $_GET['field'];
$result = mysql_query("SELECT $field FROM `events` WHERE `id` = '$eventid' ");
echo $result;
我得到的只是Resource id #19
我该怎么做?什么是最好的方法?
答案 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不再适合你了! :)