Select и echo одно поле из mysql db, используя PHP

Я пытаюсь выбрать столбец заголовка из определенной строки

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

все, что я получаю, это Resource id #19

Как мне это сделать? Какой лучший метод?

Ответ 1

$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

Попробуйте следующее:

echo mysql_result($result, 0);

Этого достаточно, потому что вы извлекаете только одно поле из одной строки.

Ответ 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'];
}

Ответ 4

И избегайте ваших значений с помощью mysql_real_escape_string, поскольку PHP6 больше не сделает этого для вас!:)