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

mrp*_*atg 13 php mysql

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

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

我得到的只是 Resource id #19

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

Fra*_*anz 17

试试这个:

echo mysql_result($result, 0);
Run Code Online (Sandbox Code Playgroud)

这就足够了,因为您只获取一行中的一个字段.

  • `mysql_result($ result,0)`表示第一行(也是唯一一行). (2认同)

dfi*_*ovi 10

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

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

  • 或者使用预准备语句来帮助避免SQL注入.注意:不推荐使用mysql_query,而是使用mysqli或PDO. (4认同)